首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过QQuickItem打开QFileDialog

通过QQuickItem打开QFileDialog
EN

Stack Overflow用户
提问于 2014-11-23 21:41:16
回答 1查看 612关注 0票数 0

我想通过QQuickItem打开QFileDialog。

代码语言:javascript
复制
 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 File-Dialog代替。http://qt-project.org/doc/qt-5/qml-qtquick-dialogs-filedialog.html

但我想在这里使用QFileDialog。http://qt-project.org/doc/qt-5/qfiledialog.html

你知道我该怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-24 03:25:45

只需使用QML版本,它与基于QWidget的对话框完全相同。使用基于QWidget的对话框,你唯一能得到的就是向后移动,然后为Qt5Widgets库拖出几个MB。

无论你认为你想要做的是什么,都不值得去做。旧的QtQuick1提供了一个代理组件来显示QML中的小部件,但这在QtQuick2中不可用,因为它有一种不同的呈现方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27089566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档