如何使用 QML 屏幕元素

发布于 2024-12-15 09:10:41 字数 540 浏览 4 评论 0原文

我想使用此处描述的 QML 屏幕元素的 screen.heightscreen.width 属性:http://doc.qt.nokia.com/qt-components-symbian/qml-screen.html 这样我可以在我的中使用锚点可调整大小的 Qt 应用程序。

奇怪的是我找不到如何使用它。仅使用 screen.heightScreen.height 会出现找不到变量错误。在文档中它说:

屏幕作为名为 screen 的上下文属性公开。它不是 可以在 QML 中实例化 Screen 对象,但屏幕必须是 通过上下文属性访问。

我认为这可以解释我的问题,但由于我是 Qt 新手,我不知道这意味着什么。请问有人可以帮我解决我的愚蠢问题吗?

I want to use the screen.height and screen.width property of the QML Screen Element described here: http://doc.qt.nokia.com/qt-components-symbian/qml-screen.html so that I can use anchors in my resizable Qt app.

Strangely I can't find how to use it. Just using screen.height or Screen.height gives a can't find variable error. In the documentation it says :

A screen is exposed as a context property named screen. It is not
possible to instantiate a Screen object in QML, but the screen must be
accessed through the context property.

I think this might explain my question but as I'm new to Qt I don't know what it means. Please if anyone can just help me with my stupid question?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

路弥 2024-12-22 09:10:42

如果您使用的是 Qt Creator 2.2.1,则在 ma​​in.cpp 中使用 viewer.showFullScreen();

在旧版本中,QmlApplicationViewer 不是自动生成的,我使用了以下代码

QDesktopWidget *screen = QApplication::desktop();

QRect rect = screen->screenGeometry(-1);



int screenHeight = rect.height();

int screenWidth = rect.width();



delete screen;



QDeclarativeView *view = new QDeclarativeView;

if(screenHeight > screenWidth)

    view->setSource(QUrl("qrc:/StopWatchP.qml"));

else

    view->setSource(QUrl("qrc:/StopWatchL.qml"));



QObject *parentObject = qobject_cast<QGraphicsObject *> (view->rootObject());

parentObject->setProperty("width",screenWidth);

parentObject->setProperty("height",screenHeight);

,其中 QDesktopWidget 用于获取屏幕及其对应的尺寸。

如果屏幕高度更高,那么我将加载为纵向模式设计的 QML 文件,否则为横向模式。

If you are using Qt Creator 2.2.1 then use viewer.showFullScreen(); in main.cpp.

In older versions, where QmlApplicationViewer is not auto generated I used the following code

QDesktopWidget *screen = QApplication::desktop();

QRect rect = screen->screenGeometry(-1);



int screenHeight = rect.height();

int screenWidth = rect.width();



delete screen;



QDeclarativeView *view = new QDeclarativeView;

if(screenHeight > screenWidth)

    view->setSource(QUrl("qrc:/StopWatchP.qml"));

else

    view->setSource(QUrl("qrc:/StopWatchL.qml"));



QObject *parentObject = qobject_cast<QGraphicsObject *> (view->rootObject());

parentObject->setProperty("width",screenWidth);

parentObject->setProperty("height",screenHeight);

where the QDesktopWidget is used to get the screen and its corresponding size.

If the screen height is more, then I will load the QML file designed for Portrait mode else the Landscape mode.

一世旳自豪 2024-12-22 09:10:41

我已经意识到使用 set fullscreen 调整我的根对象的大小,因此在 5 小时后重写我的应用程序以使用相对于根对象的值。

I have realized that using set fullscreen resizes my root object so after 5 hours rewriting my app to use values relative to the root object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文