Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: piton от Март 07, 2005, 10:46



Название: как поместить QCanvas на форму, используя Qt Designer
Отправлено: piton от Март 07, 2005, 10:46
я использую Qt Designer для "рисования" форм, и код стараюсь писать в нем же, потому что все делать с нуля в заголовочеых файлах - у меня ума мало :(  но можно ли как нибудь, используя средства Qt Designer поместить на форму QCanvas (и какие-либо другие похожие виджеты, например QBitmap или QImage) в нужном месте?
если нельзя, то скажите, pls, как тогда вообще это сделать, если у меня все заголовочные файлы уже сгенерены designer'ом, и мне туда лезть не очень хочется. можно ли добиться этого, вписав какой-либо код в
void mainform::int(){}
?


Название: как поместить QCanvas на форму, используя Qt Designer
Отправлено: Zigmar от Март 07, 2005, 15:57
Ну QCanvas вообще нельзя добавить на форму, потому что это не графический класс. Но можно QCanvasView. Но его нет в стандартных виджетах в дезайере, как и QStatusBar и еще парочки.
Но это очень легко исправить, если добавить их как "Custom Widget".
Идешь в Tools->Custom->Edit custom widgets.
New Widget
class: QCanvasView
headerfile: qcanvas.h (global)
size policy: expanding/expanding

Ттаким образом можно добавить любой недостающий или свой виджет в дизайнере. Если ты хочешь из дизайнера еще и сигналы к нему подключать, то нужно в том-же редакторе их объявить.

А на счет писания в *.ui.h файлах - ИМХО, это хорошо и удобно, только для совсем простых случает и элементарной функциональности. Во всех остальных случаях - горздо удобнее наследоваться от виджите созданного в дизайнере и работать нормально.


Название: как поместить QCanvas на форму, используя Qt Designer
Отправлено: Sergeich от Март 09, 2005, 15:49
Можно написать плагин к дизайнеру. См. в доке по дизайнеру Creating Custom Widgets, раздел Creating Custom Widgets with Plugins.


Название: Re: как поместить QCanvas на форму, используя Qt Designer
Отправлено: Victor007 от Март 21, 2013, 17:49
Ну QCanvas вообще нельзя добавить на форму, потому что это не графический класс. Но можно QCanvasView. Но его нет в стандартных виджетах в дезайере, как и QStatusBar и еще парочки.
Но это очень легко исправить, если добавить их как "Custom Widget".
Идешь в Tools->Custom->Edit custom widgets.
New Widget
class: QCanvasView
headerfile: qcanvas.h (global)
size policy: expanding/expanding

Ттаким образом можно добавить любой недостающий или свой виджет в дизайнере. Если ты хочешь из дизайнера еще и сигналы к нему подключать, то нужно в том-же редакторе их объявить.

А на счет писания в *.ui.h файлах - ИМХО, это хорошо и удобно, только для совсем простых случает и элементарной функциональности. Во всех остальных случаях - горздо удобнее наследоваться от виджите созданного в дизайнере и работать нормально.

Пробую сделать, как Вы сказали, иду в tools, но никаких custom там не вижу. Может быть, сейчас уже более новая версия qt (у меня 4.2). Как там создавать custom widgets?


Название: Re: как поместить QCanvas на форму, используя Qt Designer
Отправлено: carrygun от Март 22, 2013, 05:23
В контекстном меню объекта на форме есть функция "Преобразовать в...", можно воспользоваться ею.


Название: Re: как поместить QCanvas на форму, используя Qt Designer
Отправлено: Victor007 от Март 22, 2013, 10:19
Да, есть пункт "Morph into", но, например, для button он предлагает преобразовать ее только в другие типы кнопок и все. Единственный элемент, который я нашел, близкий к рисованию - это Graphics View, но для него такого пункта ("Morph into") нет. Может, я вообще не там смотрю? Где должен быть QCanvas? Какие элементы рядом с ним?


Название: Re: как поместить QCanvas на форму, используя Qt Designer
Отправлено: carrygun от Март 22, 2013, 10:28
QCanvas это наверняка что-то из 3й версии тулкита.

А насчет дизайнера, то обратите внимание, что есть подменю "Преобразовать в" и просто пункт "Преобразовать в...". Наследуетесь от нужного виджета, переписываете что вам нужно, преобразовываете на форме.