Qt4 使用QML的全屏桌面应用程序
我有使用flex和AS3开发丰富用户界面应用程序的经验。然而,问题是,它很难使用现有的C++业务逻辑与这些Flex应用程序。随着QML的出现,我很好奇,是否有可能重用QC++的业务逻辑,并使用Qt来实现富UI应用程序。p> 我想知道是否有可能为桌面开发全屏幕富用户界面应用程序(尤其是在移动设备中越来越常见)。例如()Adobe有Flash Player,可以在全屏模式下使用,并运行以AS3编写的内容。是否可以使用QT/QML编写类似的应用程序?QT有 要全屏运行,请执行以下操作:Qt4 使用QML的全屏桌面应用程序,qt4,fullscreen,qml,Qt4,Fullscreen,Qml,我有使用flex和AS3开发丰富用户界面应用程序的经验。然而,问题是,它很难使用现有的C++业务逻辑与这些Flex应用程序。随着QML的出现,我很好奇,是否有可能重用QC++的业务逻辑,并使用Qt来实现富UI应用程序。p> 我想知道是否有可能为桌面开发全屏幕富用户界面应用程序(尤其是在移动设备中越来越常见)。例如()Adobe有Flash Player,可以在全屏模式下使用,并运行以AS3编写的内容。是否可以使用QT/QML编写类似的应用程序?QT有 要全屏运行,请执行以下操作: $ qmlvi
$ qmlviewer -fullscreen -frameless file.qml
此外,还可以使用QML创建全屏应用程序。
对于桌面小部件。< P>如果你想使用C++上写的业务逻辑和一些QML用户界面,你可以在应用程序内部使用<代码> QualQualVIEVIEW/COD>。它只是一个常规的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();
}
#包括
#包括
#包括
int main(int _argc,char*_argv[])
{
QApplication应用程序(_argc,_argv);
QDEcrativeView视图;
view.setSource(QUrl(“qrc:/MyGui.qml”);//如果qml文件在其中
//应用程序资源
view.showFullScreen();//这里我们以全屏显示视图
返回app.exec();
}
您可以找到更多信息。全屏显示也只有QML才能实现。 如果您使用的不是QDeclarativeView,而是QQmlApplicationEngine,则可以使用此选项,因为后者不继承QWidget,也没有showFullScreen()方法
但重要的是使用ApplicationWindow作为根元素,而不是矩形。对于Apple Windows,你必须导入QtQuff.Field.< P>当在C++中使用QQML Apple Tebug引擎时,你可以在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();
}
使用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
}
导入QtQuick 2.6
导入QtQuick.Window 2.2
窗口{
id:主窗口
对象名称:“主窗口”
可见:正确
标志:Qt.FramelessWindowHint | Qt.Window
颜色:“黑色”
可见性:Qt.WindowFullScreen//我登录到+1。我在互联网上搜索了一个示例,了解如何将QML文件加载到Qt应用程序中,花了大约20分钟,直到我碰巧发现了这个示例。也许我需要学习如何更好地使用Google。无论如何,非常感谢!对我来说效果很好,但请注意,有一个bug会导致fullsScreen QtQuickMenuBar
s无法正常工作(至少在Windows上)。要使用最大化的窗口,可以使用:height:Screen.height;width:Screen.width
还有可用的枚举,而不是那些字符串,window.FullScreen
等。在Qt 5.11中,这也与从属性读回的值相匹配(也就是说,不要尝试将“窗口化”作为一个值进行测试,这永远不会发生)实际上我需要那个tut,但我无法访问它。请问链接有问题吗?Meego wiki看起来死了。尝试在那里找到一些东西
import QtQuick 2.7
import QtQuick.Window 2.2
Window {
id: mainWindow
Component.onCompleted: {
mainWindow.showFullScreen();
}
}
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
}