QMainWindow
에 QQuickWidget
이 포함되어 있습니다.
은 앱의 상태 (초기화 여부)에 따라 두 가지 qml (splash.qml
및 main.qml
)을 표시합니다.왜 Qt :: SplashScreen 플래그를 설정하면 닫는 것을 막을 수 있습니까?
은 내가 splash.qml
가 표시 될 때 내 방 창문이 스플래시 스크린 모드로 원하는, 그래서 내가 그랬어 : 초기화가 수행되며 다른 QML 파일이로드 될 때
MainWindow::MainWindow(QMainWindow * parent) :QMainWindow(parent)
{
QApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
mDefaultFlags = windowFlags();
setAttribute(Qt::WA_DeleteOnClose, true);
setWindowFlags(Qt::SplashScreen);
mQuickWidget = new QQuickWidget(this);
//...
setCentralWidget(mQuickWidget);
mQuickWidget->show();
}
QML은 슬롯을 트리거합니다. 그때되는 SplashScreen에서 돌아가 기본 값으로 플래그를 재설정 :
void MainWindow::UpdateWindowAfterInit()
{
setWindowFlags(mDefaultFlags);
show();
}
모든 예상대로 간다,하지만 난 내 응용 프로그램을 닫으려고 할 때 돈 나는 경우가 잘 닫습니다 반면 그것은 main()
의 끝에 도달하지 Qt::SplashScreen
플래그를 적용하십시오.
내 응용 프로그램을 종료하려면 어떻게해야합니까?
사용해보십시오'Qt는 :: FramelessWindowHint' 대신'Qt는 :: SplashScreen' 플래그. 이것은 QT의 버그 일 수 있습니다. – Steeve