У меня какая-то дилемма.
Я использую:
- MSVS 2008
- Qt 4.7.3 (с надстройкой Qt VS 1.1.9)
Я написал небольшое приложение Qt, основанное на QMainWindow
классе, где также существует settings диалоговое окно (QDialog
). Каждый работает нормально в режиме графического интерфейса. После этого я начал изменять свой проект, чтобы он был виден только в tray . Просто прокомментируйте метод main.cpp show()
, например:
MainWindow w;
//w.show();
return app.exec();
Но из трея мне нужно запустить диалог settings , который реализован в файлах mainwindow.h / .cpp. Я добавил в трей меню действия (QAction
), которое запускает диалог settings . И тут возникает неожиданная проблема: когда я пытался закрыть это диалоговое окно settings кнопкой [X] (в правом верхнем углу), мое приложение закрылось !
Вот слот действий:
void MainWindow::onOpenSettingsDlgClicked()
{
SettingsDlg dlg( this );
dlg.exec();
}
Я попытался переопределить метод virtual reject()
для диалогового класса settings и установить там только функцию hide()
, но это решение не помогло.
Что я делаю не так?
Спасибо тебе!