Я заинтересован в создании собственного небольшого графического дизайнера для обучения в Qt. Просто базовое перетаскивание с левой панели, которая будет иметь элементы управления, на правую панель, на которой они могут быть выделены, перемещены, изменены размеры и изменены их свойства (имя и т. Д.) И в конечном итоге (если выбран) выстроены в линию.
Я бы использовал QGraphicsScene в качестве правой панели, потому что в нем уже реализован выбор и перемещение. Но как бы я внедрил изменение размера? И как тогда сгенерировать класс QWidget с элементами управления в тех же позициях? Или есть более простой способ?
Как лучше всего реализовать все это? Все предложения приветствуются и имейте в виду, что он не будет сложным в качестве дизайнера Qt.
Вам нужно определить некоторые виджеты, которые будут перетаскиваться с левой панели — может быть в виде дерева с иконками — и выбрасываться на сцену.
Эти виджеты должны наследоваться от QGraphicsWidget
, Вы также можете наследовать QWidget
и поместить виджеты в сцену через QGraphicsProxyWidget
, Их можно изменить, выделив углы и перегрузив события мыши. Пожалуйста, проверьте угловые захваты а также большая коробка Примеры. Также проверьте QSizeGrip
, Это изменение размера любого QStatusBar
,
Панель свойств является самой простой, вы должны перечислить свойства выбранного элемента. Чтобы выстроиться в линию, вы можете заново изобрести колесо и написать верстальщик класс или просто использовать QGraphicsLayout
и выделите макет на вашем интерфейсе. Ctrl + левый клик должен выбрать несколько виджетов, кнопка макета должна макетировать их программно, и должен быть нарисован ограничивающий прямоугольник.
Других решений пока нет …