0
我需要以編程方式知道窗口/對話框/小部件是打開的,因爲我使用的是FileOpenEvent
來加載文件,而我只想加載該文件,如果我的QMainWindow
是唯一打開的。我的Qt5應用程序如何以編程方式知道正在運行的窗口和對話框?
我需要以編程方式知道窗口/對話框/小部件是打開的,因爲我使用的是FileOpenEvent
來加載文件,而我只想加載該文件,如果我的QMainWindow
是唯一打開的。我的Qt5應用程序如何以編程方式知道正在運行的窗口和對話框?
我發現遍歷所有QWindow
s,並檢查多個與isExposed() == true
處理我所做的一切,除了本地Mac對話框(另存爲,打印和打開文件)。所以這似乎足以滿足我的需求:
bool found_exposed_window = false;
foreach (QWindow *window, qApp->allWindows()) {
if (window->isExposed()) {
if (found_exposed_window) {
// This is the second exposed window, meaning the user has something
// open in addition to the main form.
// So, don't try to load a file.
return;
}
found_exposed_window = true;
}
}