FlexとAS3を使用してリッチなユーザーインターフェイスアプリケーションを開発した経験があります。ただし、問題は、これらのフレックスアプリで既存のc ++ビジネスロジックを使用するのが非常に難しいことです。 QMLの登場により、リッチUIアプリのQTでc ++ビジネスロジックを再利用できるかどうか興味があります。
デスクトップ用のフルスクリーンリッチユーザーインターフェイスアプリケーション(特にモバイルデバイスでますます一般的になっている)を開発できるかどうかを知りたいです。例( http://blog.flexexamples.com/2007/08/07/creating-full-screen-flex-applications/ )Adobeには、フルスクリーンモードで使用できるFlashPlayerがあります。 AS3で記述されたコンテンツを実行します。 QT/QMLを使用して同様のアプリケーションを作成することは可能ですか?
C++で記述されたビジネスロジックといくつかのQMLユーザーインターフェイスを使用したい場合は、アプリケーション内でQDeclarativeView
を使用できます。これは単なる通常のQtウィジェットなので、メソッドshowFullScreen()
があります。実際、このクラスは「アプリケーション内のqmlviewer」のようなものです。
したがって、次のようなものが得られます。
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
#include <QtCore/QUrl>
int main(int _argc, char * _argv[])
{
QApplication app(_argc, _argv);
QDeclarativeView view;
view.setSource(QUrl("qrc:/MyGui.qml")); // if your QML files are inside
// application resources
view.showFullScreen(); // here we show our view in fullscreen
return app.exec();
}
あなたはより多くの情報を見つけることができます ここ 。
全画面表示にするQMLのみの方法もあります。 QDeclarativeViewを使用していないがQQmlApplicationEngineを使用している場合は、これを使用できます。後者はQWidgetを継承せず、メソッドshowFullScreen()を持たないためです。
import QtQuick 2.2
import QtQuick.Controls 1.1
ApplicationWindow {
id: window
visible: true
visibility: "FullScreen"
width: 640
height: 480
Button {
text: "exit fullscreen"
onClicked: window.visibility = "Windowed"
}
}
ただし、Rectangleではなく、ルート要素としてApplicationWindowを使用することが重要です。 ApplicationWindowの場合、QtQuick.Controlsをインポートする必要があります。
C++でQQmlApplicationEngineを使用する場合、QMLで次のようなことができます。
main.cpp
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
main.qml
import QtQuick 2.7
import QtQuick.Window 2.2
Window {
id: mainWindow
Component.onCompleted: {
mainWindow.showFullScreen();
}
}
QT5.8でテスト済み
これは以前の回答からのさらに別のバリエーションですが、これは(デフォルトのQtクイックアプリケーション-空)ウィンドウQMLタイプとQt列挙型を使用します:
import QtQuick 2.6
import QtQuick.Window 2.2
Window {
id: mainWindow
objectName: "mainWindow"
visible: true
flags: Qt.FramelessWindowHint | Qt.Window
color: "black"
visibility: Qt.WindowFullScreen // << the solution
}
Qtには qmlviewer があります。
フルスクリーンで実行するには:
$ qmlviewer -fullscreen -frameless file.qml
また、QMLを使用してフルスクリーンアプリケーションを作成する チュートリアル もあります。そして components デスクトップウィジェットの場合。