Russian Qt Forum
Май 18, 2024, 02:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Баг в Qt - QDockWidget закрывается по Alt+F4  (Прочитано 5281 раз)
drsm
Гость
« : Февраль 19, 2009, 12:05 »

виджет не придочен те во floating mode
DockWidgetClosable не стоит
как побороть?
« Последнее редактирование: Февраль 19, 2009, 12:10 от drsm » Записан
drsm
Гость
« Ответ #1 : Февраль 20, 2009, 09:44 »

переопределил я
Код
C++ (Qt)
void DockWidget::closeEvent(QCloseEvent *event)
{
event->ignore();
}
теперь не закрывается dockWidget, естественно.
извините за тупой вопрос, а как мне сделать так чтобы закрывалось приложение,
те отправить этот event в главное окно.
Записан
spirit
Гость
« Ответ #2 : Февраль 20, 2009, 10:07 »

qApp->quit();
Записан
drsm
Гость
« Ответ #3 : Февраль 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);
?

Записан
Dendy
Гость
« Ответ #4 : Февраль 20, 2009, 20:13 »

Потому что класс приложения не обрабатывает это событие. Оно только для виджетов.
Записан
drsm
Гость
« Ответ #5 : Февраль 24, 2009, 10:04 »

странно, в случае:
QCoreApplication::postEvent(parent(), closeEvent);
parent() - это QMainWindow;
те, вроде, я виджету и шлю событие-то.
или я чего-то не понимаю.
Записан
Dendy
Гость
« Ответ #6 : Февраль 24, 2009, 13:45 »

Упс, был пьян, не туда смотрел.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.243 секунд. Запросов: 17.