Название: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 19, 2011, 16:52 Всем здравствуйте!
если делать так в программе: Код: ... Код: ... как быть? Название: Re: MdiSubWindow, не работают слоты Отправлено: lit-uriy от Май 19, 2011, 17:28 >>а виджет не закрывается. как быть?
Виджет как раз закрывается, поэтому исчезает и кнопка. Тут особенность концепции (на мой взгляд неуклюжей) самого Субокна. Оно остаётся жить. просто запомни: resize, close, ... нужно делать для субокна, а не виджета, на основе которого оно создано. Твой же код, для справки: Код ты вызываешь show() у только что созданного субокна, а не виджета myWidget Название: Re: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 20, 2011, 08:32 в принципе, понятно, работает так:
Код: ... исходник плагина plugin.cpp: Код: #include <QtGui> Код: #include "mainwindow.h" Название: Re: MdiSubWindow, не работают слоты Отправлено: lit-uriy от Май 20, 2011, 10:42 первое, что в голову пришло:
ставить на виджет фильтр событий, ловить "Закрытие", если поймано, то закрывать субокно. П.С. не забудь, close() для виджета, не удаляет виджет из памяти, т.к. по умолчанию атрибут Qt::WA_DeleteOnClose сброшен. См. QMdiSubWindow * QMdiArea::addSubWindow ( QWidget * widget, Qt::WindowFlags windowFlags = 0 ) Название: Re: MdiSubWindow, не работают слоты Отправлено: lit-uriy от Май 20, 2011, 10:42 П.С.
вообще-то субокно должен пользователь штатным способом закрыавть (крестиком) Название: Re: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 20, 2011, 11:20 1)расскажи по конкретнее про фильтр событий, это как?
2)закрывать крестиком это одно, но вот когда в субокне заносятся данные, то кнопочка типа "Ок", которая записывает данные и закрывает субокно, оу как не помешает, если не сказать большее, что это уже как стандарт Название: Re: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 20, 2011, 17:14 как оказалось, виджет в субокне живёт "своей жизнью", все действия и события виджета(например, отобразить в полноэкранном режиме) не распостроняются на субокно(каким был размер, таким и остаётся.). можно ли как-нибудь из виджета плагина получить ссылку на его предка(то бишь на субокно, его свойства и методы)?
Название: Re: MdiSubWindow, не работают слоты Отправлено: lit-uriy от Май 20, 2011, 17:32 >>2)закрывать крестиком это одно, но вот когда в субокне заносятся данные, то кнопочка типа
>>"Ок", которая записывает данные и закрывает субокно, оу как не помешает Вообще у тебя смысловая ошибка. Кнопки "Ок" не может быть в субокне. Она для диалогового окна предназначена. Субокно нужно для много документного интерфейса. Диалоговые окна в MDI никто не отменял. Название: Re: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 20, 2011, 17:41 так у меня и так многодокументный интерфейс
кстати, по поводу фильтра событий....пробовал, пока не получается, можешь что то посоветовать по последнему моему вопросу? Название: Re: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 23, 2011, 15:10 уважаемые форумчане, может всё-таки есть у кого-то мысли по поводу разрешения вопроса в 6м сообщении?буду оч признателен
Название: Re: MdiSubWindow, не работают слоты Отправлено: Mikhail от Май 23, 2011, 16:04 ПО закрытию своего окна испусти сигнал в QMdiSubWindow в котором оно отображается. Закрытие окна проигнорировать.
Этот сигнал передать сигналом в QMdiArea и оно пумть закроет ативное QMdiSubWindow в котором отображается видгет в ктором ты нажал кнопку. Вот так. Название: Re: MdiSubWindow, не работают слоты Отправлено: wertklop от Май 26, 2011, 09:08 всё оказалось проще. может кому пригодится...
plugin.cpp Код: ... mainwindow.cpp Код: ... |