Версия для печати темы
Форум на CrossPlatform.RU _ Qt GUI _ QT Designer LITE-edition
Автор: nightmare 27.3.2010, 1:10
Необходимо сделать редактор форм для своих собственных XML файлов по типу qt designer. Открыл исходные коды дизайнера и даже не знаю куда смотреть. Мне необходимо узнать как сделать формачку на которую можно класть кнопки и другие элементы. Вобщем то можно было бы свой велосипед изобрести, но не знаю даже с какова виджета начинать. Это мой первый более менее нормальный проект на QT. Как рисовать рамку выделения элементов? Рисовать кнопки и таблицы которые потом можно перетягивать мышкой? Мне будет достаточно пару напутственных слов в каком месте копать.
Заранее благодарен.
Автор: ViGOur 27.3.2010, 14:36
1. Создаешь форму, на которой будут лежать твои элементы.
2. Создаешь панель выбора элементов.
3. При выборе определенного элемента в панеле и клике на форме, получаешь координаты клика и на том месте динамически создаешь выбранный элемент.
4. Реализуешь перетаскивание элемента мышью по форме.
5. Реализуешь изменение размеров элемента на форме (растянивание или работа с компановкой).
Ну и потому при сохранении получаешь все дочерние элементы и сохраняешь их куда-нибудь...
Все в принципе достаточно тривиально.
Автор: nightmare 27.3.2010, 15:54
Если динамически создавать именно те классы коотрые положил на форму, а не рисовать пэинтером, получается нужн оделать фильтр событий для всех этих элементиков на клик. Просто я хотел узнать какой механизм используется в дизайнере что бы так же делать. Думал может кто знаком с его кодом.
Автор: ViGOur 27.3.2010, 16:03
Тебе же нужен просто редактор форм, следовательно никаких фильтров события для кликов тебе делать не нужно, кроме тех, что я перечислил. Хотя их можно сделать тоже, но для чего?
Можно и рисованием обойтись, но тогда тебе нужно будет создать или классы для рисования всех элементов, по одному на каждый элемент, для них так же реализовывать функционал на перенос и изменение размеров, с лайоутами вообще будет гемор. Или держать картинки для каждого элемента и так же морочиться.
ИМХО, проще сделать как я написал выше.
А для рисовать рамки выделения элементов нужно просто переопределить paintEvent
Автор: Litkevich Yuriy 27.3.2010, 16:06
Цитата(ViGOur @ 27.3.2010, 19:03)
но для чего?
Для однообразной реализации следующих пунктов:
Цитата(ViGOur @ 27.3.2010, 17:36)
4. Реализуешь перетаскивание элемента мышью по форме.
5. Реализуешь изменение размеров элемента на форме (растянивание или работа с компановкой).
Цитата(nightmare @ 27.3.2010, 18:54)
какой механизм используется в дизайнере что бы так же делать
в дизайнере наверняка используются внутренние премудрости Qt
Автор: ViGOur 27.3.2010, 16:15
Цитата(Litkevich Yuriy @ 27.3.2010, 16:06)
Для однообразной реализации следующих пунктов:
Ну в принципе да.
Нужно подумать, как сделать общий фильтр для всех элементов и рисование рамки выделенного элемента...
Думаю, что это все можно будет сделать в базовой форме.
Автор: igor_bogomolov 27.3.2010, 16:27
Цитата(nightmare @ 27.3.2010, 1:10)
Необходимо сделать редактор форм для своих собственных XML файлов по типу qt designer. Открыл исходные коды дизайнера и даже не знаю куда смотреть. Мне необходимо узнать как сделать формачку на которую можно класть кнопки и другие элементы. Вобщем то можно было бы свой велосипед изобрести, но не знаю даже с какова виджета начинать.
Тоже предстоит этим заниматься, где то через недельку - полторы.
Реализовывать все необходимо на http://doc.crossplatform.ru/qt/4.6.x/graphicsview.html В качестве, начала и элементарного примера, можно посмотреть http://doc.crossplatform.ru/qt/4.6.x/graphicsview-diagramscene.html
Автор: DEADHUNT 27.3.2010, 17:35
может легче использовать модуль QtDesigner?
Автор: Litkevich Yuriy 27.3.2010, 17:42
Цитата(DEADHUNT @ 27.3.2010, 20:35)
может легче использовать модуль QtDesigner?
а он вроде не документирован
Автор: DEADHUNT 27.3.2010, 17:50
Цитата(Litkevich Yuriy @ 27.3.2010, 17:42)
а он вроде не документирован
http://doc.crossplatform.ru/qt/4.3.2/qtdesigner.html
Автор: Litkevich Yuriy 27.3.2010, 17:59
Автор: nightmare 27.3.2010, 19:13
Цитата(DEADHUNT @ 27.3.2010, 17:50)
http://doc.crossplatform.ru/qt/4.3.2/qtdesigner.html
Спасибо за линк буду разбирать. Заодно поучусь на чужом коде.
Автор: aliks-os 8.4.2010, 15:18
Цитата(nightmare @ 27.3.2010, 19:13)
Цитата(DEADHUNT @ 27.3.2010, 17:50)
http://doc.crossplatform.ru/qt/4.3.2/qtdesigner.html
Спасибо за линк буду разбирать. Заодно поучусь на чужом коде.
Помогла эта ссылочка? Удалось использовать редактор от Qt?
Я тоже занимаюсь создание такого же как и вы дизайнера, часть написал сам и наткнулся на этот пост. И мне интересно как вы решили свой вопрос.
Автор: propovednik_dobra 7.6.2011, 16:47
Здравствуйте.. ну как удалось вам сделать редактор форм?? вот мне тоже наверно предстоит его сделать...если можете, то расскажите основные пункты для его реализации...и что читали когда делали редактор?
спасибо
Автор: aliks-os 6.7.2011, 12:30
Цитата(propovednik_dobra @ 7.6.2011, 16:47)
ну как удалось вам сделать редактор форм??
удалось
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)