【发布时间】:2014-11-23 13:41:15
【问题描述】:
我想在 QQuickItem 上打开 QFileDialog。
void
MyCoolQQuickItem::loadFileDialog()
{
QString filename = QFileDialog::getOpenFileName(this, "Open a file",
"C:\\path to my stuff\\", "*.*");
if(filename.size()>0) {
// load file and do stuff
}
}
MyCoolQQuickItem 是 QQuickItem 的子类。 并且 QFileDialog::getOpenFileName 需要一个 QWidget* 作为父级。如果我改为传递 null_ptr,则对话框会作为模态对话框正确打开。但是在我关闭对话框后,错误的窗口获得了焦点。
我尝试传递窗口而不是(this->window(),但我有一个 QQuickWindow,在 QWidget 中也无法解析。
我可以改用 QML 文件对话框。 http://qt-project.org/doc/qt-5/qml-qtquick-dialogs-filedialog.html
但我想在这里使用 QFileDialog。 http://qt-project.org/doc/qt-5/qfiledialog.html
有什么办法可以解决这个问题吗?
【问题讨论】: