![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
nightmare |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 27.3.2010 Пользователь №: 1572 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Необходимо сделать редактор форм для своих собственных XML файлов по типу qt designer. Открыл исходные коды дизайнера и даже не знаю куда смотреть. Мне необходимо узнать как сделать формачку на которую можно класть кнопки и другие элементы. Вобщем то можно было бы свой велосипед изобрести, но не знаю даже с какова виджета начинать. Это мой первый более менее нормальный проект на QT. Как рисовать рамку выделения элементов? Рисовать кнопки и таблицы которые потом можно перетягивать мышкой? Мне будет достаточно пару напутственных слов в каком месте копать.
Заранее благодарен. |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
1. Создаешь форму, на которой будут лежать твои элементы.
2. Создаешь панель выбора элементов. 3. При выборе определенного элемента в панеле и клике на форме, получаешь координаты клика и на том месте динамически создаешь выбранный элемент. 4. Реализуешь перетаскивание элемента мышью по форме. 5. Реализуешь изменение размеров элемента на форме (растянивание или работа с компановкой). Ну и потому при сохранении получаешь все дочерние элементы и сохраняешь их куда-нибудь... Все в принципе достаточно тривиально. |
|
|
nightmare |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 27.3.2010 Пользователь №: 1572 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Если динамически создавать именно те классы коотрые положил на форму, а не рисовать пэинтером, получается нужн оделать фильтр событий для всех этих элементиков на клик. Просто я хотел узнать какой механизм используется в дизайнере что бы так же делать. Думал может кто знаком с его кодом.
|
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Тебе же нужен просто редактор форм, следовательно никаких фильтров события для кликов тебе делать не нужно, кроме тех, что я перечислил. Хотя их можно сделать тоже, но для чего?
Можно и рисованием обойтись, но тогда тебе нужно будет создать или классы для рисования всех элементов, по одному на каждый элемент, для них так же реализовывать функционал на перенос и изменение размеров, с лайоутами вообще будет гемор. Или держать картинки для каждого элемента и так же морочиться. ИМХО, проще сделать как я написал выше. А для рисовать рамки выделения элементов нужно просто переопределить paintEvent |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
но для чего? Для однообразной реализации следующих пунктов:4. Реализуешь перетаскивание элемента мышью по форме. 5. Реализуешь изменение размеров элемента на форме (растянивание или работа с компановкой). какой механизм используется в дизайнере что бы так же делать в дизайнере наверняка используются внутренние премудрости Qt
|
|
|
ViGOur |
![]()
Сообщение
#6
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
igor_bogomolov |
![]()
Сообщение
#7
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Необходимо сделать редактор форм для своих собственных XML файлов по типу qt designer. Открыл исходные коды дизайнера и даже не знаю куда смотреть. Мне необходимо узнать как сделать формачку на которую можно класть кнопки и другие элементы. Вобщем то можно было бы свой велосипед изобрести, но не знаю даже с какова виджета начинать. Тоже предстоит этим заниматься, где то через недельку - полторы. ![]() Реализовывать все необходимо на графической сцене. В качестве, начала и элементарного примера, можно посмотреть diagramscene |
|
|
DEADHUNT |
![]()
Сообщение
#8
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
может легче использовать модуль QtDesigner?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
DEADHUNT |
![]()
Сообщение
#10
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 17:30 |