![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Gambit |
![]() ![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 12.6.2010 Пользователь №: 1802 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Программа, запущенная с флагами this->setWindowFlags (Qt::Tool | Qt::FramelessWindowHint);
падает после нажатия на OK в вызванном мессадж-боксе. Код вызова стандартный: msgBox.setIcon(QMessageBox::Information); msgBox.setDetailedText("DETAILED TEXT"); msgBox.setWindowTitle("All OK"); msgBox.setInformativeText("Some Text"); msgBox.setText("SET_TEKAST"); msgBox.exec(); При отключении флагов, прога не падает, но мне нужно чтобы главное окно было без рамки и шапки. Хелп. |
|
|
![]() |
SABROG |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Похоже Qt Tool окна не считает за полноценные окна. Так будет работать, если указать родителя:
И так будет работать, если родителя не указывать:
По умолчанию setQuitOnLastWindowClosed = true. Видимо когда QMessageBox закрывается, то Qt думает, что это последнее окно. Но после решений, что я написал выше возникает другая проблема - приложение остается висеть в процессах, слот close() для Tool окна почему-то не срабатывает. Аттрибут Qt::WA_DeleteOnClose тоже не помогает. --- В общем, если дальше работать с Tool окном, то нужно взять за правило, что все Top Level окна должны иметь родителя. Затем прописать такое, чтобы корректно обрабатывать закрытие главного Tool окна:
Сообщение отредактировал SABROG - 3.8.2010, 12:07 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.6.2025, 18:57 |