Qtプロジェクトでファイルパスを取得しようとしています。KDE4とQt4.8を使用していたときはすべて正常に機能していましたが、Qt5とGnome3に更新しました。QFileDialog
これで次のようになります。
またはこのようにさえ:
しかし、多くの場合、次のようになります。
ダイアログの初期パスとして渡されるパスに応じて動作が変化することに気づきました。例:電話した場合
QString path = QFileDialog::getOpenFileName(qobject_cast<QWidget*>(this->parent()), tr("Choose model"), QCoreApplication::applicationDirPath(), QLatin1String("*.obj"));
次に、2番目のケースのスクリーンショットを取得します。
それでも、私が電話すると
QString path = QFileDialog::getOpenFileName(qobject_cast<QWidget*>(this->parent()), tr("Choose model"), QString(), QLatin1String("*.obj"));
次に、空でないフォルダを取得します(最初のケースのスクリーンショット)。
また、このヒントを使用して、ファイルの1行にコメントを付け~/.gtkrc-2.0
、テーマをatambiance
ではなくに変更すると、アプリケーションに2番目のケースのスクリーンショットが表示されるようになりました。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();
}