我正在尝试在我的Qt项目中获取文件路径。当我使用KDE4和Qt 4.8时一切正常但现在我更新到Qt 5和Gnome 3.而QFileDialog
现在看起来像这样:
或者甚至喜欢这样:
但更常见的是:
我注意到行为的变化取决于作为对话框初始路径传递的路径。例如,如果我打电话
QString path = QFileDialog::getOpenFileName(qobject_cast<QWidget*>(this->parent()), tr("Choose model"), QCoreApplication::applicationDirPath(), QLatin1String("*.obj"));
然后我得到第二个案例截图。
然而,如果我打电话
QString path = QFileDialog::getOpenFileName(qobject_cast<QWidget*>(this->parent()), tr("Choose model"), QString(), QLatin1String("*.obj"));
然后我得到任何文件夹为空而不是(第一个案例截图)。
另外,使用this hint,我管理了在我的~/.gtkrc-2.0
文件中评论一行,并在ambiance
时将主题更改为adwaita
而不是gnome-tweak-tool
我的应用程序显示了第二个案例截图。
我使用此代码显示对话框:
QString path = QFileDialog::getOpenFileName(qobject_cast<QWidget*>(this->parent()), tr("Choose model"), QCoreApplication::applicationDirPath(), QLatin1String("*.obj"));
此处,this
指向QGraphicsScene
祖先,OpenGLScene
。这是我创建一个代码:
int main(int argc, char **argv)
{
QApplication app(argc, argv);
GraphicsView view;
view.setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
view.setScene(new OpenGLScene);
view.show();
view.resize(1024, 768);
return app.exec();
}