Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: drsm от Февраль 19, 2009, 12:05



Название: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: drsm от Февраль 19, 2009, 12:05
виджет не придочен те во floating mode
DockWidgetClosable не стоит
как побороть?


Название: Re: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: drsm от Февраль 20, 2009, 09:44
переопределил я
Код
C++ (Qt)
void DockWidget::closeEvent(QCloseEvent *event)
{
event->ignore();
}
теперь не закрывается dockWidget, естественно.
извините за тупой вопрос, а как мне сделать так чтобы закрывалось приложение,
те отправить этот event в главное окно.


Название: Re: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: spirit от Февраль 20, 2009, 10:07
qApp->quit();


Название: Re: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: drsm от Февраль 20, 2009, 10:18
вобщем решил проблему так:
Код
C++ (Qt)
void DockWidget::closeEvent(QCloseEvent *event)
{
event->ignore();
parentWidget()->close();
}

интересно, а почему не работает конструкция:
Код
C++ (Qt)
QCloseEvent *closeEvent = new QCloseEvent();
QCoreApplication::postEvent(parent(), closeEvent);
?



Название: Re: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: Dendy от Февраль 20, 2009, 20:13
Потому что класс приложения не обрабатывает это событие. Оно только для виджетов.


Название: Re: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: drsm от Февраль 24, 2009, 10:04
странно, в случае:
QCoreApplication::postEvent(parent(), closeEvent);
parent() - это QMainWindow;
те, вроде, я виджету и шлю событие-то.
или я чего-то не понимаю.


Название: Re: Баг в Qt - QDockWidget закрывается по Alt+F4
Отправлено: Dendy от Февраль 24, 2009, 13:45
Упс, был пьян, не туда смотрел.