Qt5 OpenFileDialog在Gnome3上表现得很奇怪

时间:2013-02-20 22:32:08

标签: c++ qt gnome qt5 gnome-3

我正在尝试在我的Qt项目中获取文件路径。当我使用KDE4和Qt 4.8时一切正常但现在我更新到Qt 5和Gnome 3.而QFileDialog现在看起来像这样:

enter image description here

或者甚至喜欢这样:

enter image description here

但更常见的是:

enter image description here

我注意到行为的变化取决于作为对话框初始路径传递的路径。例如,如果我打电话

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();
}

0 个答案:

没有答案