【发布时间】:2021-05-31 05:22:33
【问题描述】:
我的 qt 应用程序中有两个窗口,一个是主窗口,一个是设置窗口。当我创建设置窗口时,我不能使用主窗口,因为我的新窗口是模态的,我需要使用两个窗口。 如何让我的窗口没有模式?
我使用这个代码:
String inputDir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
我按下我的栏并显示我的设置窗口
//Input dir
void SecondWindow::on_pushButton_3_clicked()
{
inputDir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), "/home", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
qDebug() << inputDir;
ui->lineEdit_3->setText(inputDir);
}
我创建此表单以获取我选择的目录。作为这段代码的结果:我创建了一个模态设置窗口。
我看到了 show(),但我不明白如何在我的情况下使用 show()。
如何将我的新设置窗口设为模态窗口?
【问题讨论】:
-
我补充一些信息,你觉得呢?
-
第二个窗口的文件(目录)对话框是非模态的吗?如果是这样,你的使命就失败了。 QFileDialog::getExistingDirectory(): 这是一个方便的静态函数,它将返回用户选择的现有目录。 ... 这个函数创建一个modal 文件对话框 特别是在 Windows 上,这是使用 Windows API 的本机对话框的包装器。对于非模态文件对话框,您必须实例化
QFileDialog。 (但是,在这种情况下,它不再是原生对话框。)
标签: c++ windows qt modal-dialog