[英]Open a QFileDialog over a QQuickItem
我想通過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
知道我該如何解決嗎?
只需使用QML版本,就可以從基於QWidget
的對話框中獲得完全相同的對話框。 使用基於QWidget
的對話框的唯一收獲就是將其向后移動,並為Qt5Widgets
庫拖動了幾MB。
無論您認為要從中獲得什么收益,這樣做都是不值得的。 舊的QtQuick1提供了一個代理組件來顯示QML中的小部件,但是QtQuick2不能使用它,因為它具有不同的呈現方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.