はじめに
Mac で QtQuick アプリを作成していたのですが、QtQuick 1 では QWidget::setFullScreen() を呼べば簡単にフルスクリーン化出来たのに対し、QtQuick 2 に切り替えて同じ事をしてもフルスクリーン化出来ず困りました。色々と試行錯誤して、一部駄目なところもありますが何とか出来たので、内容をメモします。
問題
同じように困っている人もチラホラ見かけるのですが 0 replies ...。ここにも書いてあるように、showMaximized() や、showMinimized() はうまく動作するのですが showFullScreen() だけ駄目なようです。
上記エントリにも書いてあるように QtQuick 2 からは QML を表示するビューが QWidget 派生クラスから QWindow 派生クラス(QQuickView)になったことに関係しているのかな?
QtQuick 1
こんな感じで出来てました*1。
QmlApplicationViewer viewer;
viewer.setMainQmlFile(QLatin1String("qml/Hoge/main.qml"));
viewer.showFullScreen();
QtQuick 2
試行錯誤した結果、以下のようになりました*2。
QtQuick2ApplicationViewer viewer;
viewer.setMainQmlFile(QStringLiteral("qml/Piyo/main.qml"));
viewer.setFlags(Qt::WindowFullscreenButtonHint);
viewer.showFullScreen();
showFullScreen() するまえに Qt::WindowFullscreenButtonHint を setFlags で伝えておきます。すると実行後、フルスクリーンで表示されます!ただ、フルスクリーン ON/OFF を切り替えるアイコンは表示されず、一度フルスクリーンを解除してしまうと再度フルスクリーン化は出来ません。
おわりに
どなたか詳しい方、教えていただけると助かります (-人-)