Qt5 OpenFileDialog ведет себя странно на Gnome3

Я пытаюсь получить путь к файлу в моем проекте 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"));

тогда я получаю любую папку пустой, пока ее нет (скриншот первого случая).

Кроме того, используя этот намек, Мне удалось это комментируя одну строку в моем ~/.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();
}

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]