Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на 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)