在 QQuickItem 上打开 QFileDialog
Open a QFileDialog over a QQuickItem
本文关键字:QFileDialog QQuickItem 更新时间:2023-10-16
我想在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
}
}
My 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
知道我该如何解决这个问题吗?
只需使用 QML 版本,它与您从基于 QWidget
的对话框中获得的对话框完全相同。使用基于QWidget
的对话框的唯一好处是将其向后移动,并且将为Qt5Widgets
库拖动几个MB。
无论你认为你想这样做会得到什么,都不值得努力去做。旧的QtQuick1提供了一个代理组件来显示QML中的小部件,但这在QtQuick2中不可用,因为它具有不同的渲染方法。
相关文章:
- 为 QFileDialog 设置默认的 UNC 路径
- 限制用户可以在 QFileDialog 中选择的文件数量
- 在qt QFileDialog中设置后缀在linux中不起作用,如何解决?
- 筛选 QFileDialog 中显示的目录
- 如何禁用或隐藏 QFileDialog 中的默认取消按钮?
- gdborig.exe 在调试 QT 5.8 并在窗口中打开 QFileDialog 时随机崩溃
- 我可以强制 QFileDialog 使用系统区域设置而不是系统语言吗?
- 如何在 QT3 中将复选框添加到 QFileDialog 窗口
- 如何判断 QFileDialog 是否已关闭而不选择文件
- qfiledialog:gtkdialog在没有瞬态父母的情况下映射
- Qfiledialog:文件夹名称在Windows下方出现两次
- 如何使用qfiledialog和提升来保存多个图像
- 无法使用qfiledialog(QT 5.7)打开文件
- 如何在非本机 QFileDialog 中重新填充系统的"Recent places"?
- QFileDialog:选择目录和文件
- 一种在 Mac 上强制关闭模式 QFileDialog 的方法
- 为什么 QFileDialog::selectFile 不起作用?
- qt qfiledialog创建未知的com对象和安全性
- qt :: qfiledialog第二次称为我的应用程序
- 模拟单击"Choose" QFileDialog 对象中的按钮