我想通過QQuickItem打開QFileDialog。通過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,則該對話框將以模態對話框的形式正確打開。但是當我關閉對話框後,錯誤的窗口變得焦點了。
我試圖通過窗口,而不是(這 - >窗口(),但我有一個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
任何想法我怎麼能解決這個問題?
感謝您的回答,在不添加Qt5Widgets的情況下節省空間,您有一個很好的觀點。 我只是想能夠使用良好的舊對話框,並開始添加此QFileDialog,而不用考慮在QML中執行此操作。 我會試試看。 – 2014-11-23 22:13:35