1
我有一個Qt應用程序,在點擊按鈕後加載一些文件。我正在使用QFileDialog來打開文件。每次關閉文件對話框時,應用程序主窗口(QMainWindow)都位於所有其他打開的窗口(Internet瀏覽器,資源管理器等)的後面。這是標準行爲嗎?有什麼辦法可以防止這種情況發生?我試過QMainWindow在使用QFileDialog後變爲背景
// set always on top window
Qt::WindowFlags flags = this->windowFlags();
this->setWindowFlags(flags | Qt::WindowStaysOnTopHint);
但它導致文件對話框在主窗口後面。
編輯: 這裏的代碼來調用文件對話框片段(方法調用它是我的課LoadData的靜態方法):
void MainWindow::on_buttonIP_clicked()
{
loaded = LoadData::OpenFiles(IPFiles);
}
bool LoadData::openFiles(QStringList &fileNames)
{
// open files dialog
fileNames = QFileDialog::getOpenFileNames(0,
tr("Open files"), "", "Text Files (*.txt *.dat *.points)");
if (fileNames.isEmpty())
{
return false;
}
return true;
}
使用Qt :: WindowStaysOnTopHint是一個錯誤的解決方案,因爲它會導致很多問題。你能說明你如何調用QFileDialog(代碼)嗎? – demonplus
玩windows模式。它將幫助您避免主窗口消失 – madduci