【发布时间】:2014-11-07 21:26:53
【问题描述】:
我对 QML(在 Android 上)相当陌生,所以如果这是一件微不足道的事情,请原谅我。我正在尝试使用 Canvas 对象来绘制一些自定义图形等。但是我无法让它在改变屏幕方向时表现得很好。如果我以纵向启动我的应用程序,它看起来还不错,直到我切换到横向。如果我从风景开始,也会发生同样的情况。一切都很好,直到我去肖像。我该如何解决这种行为?这是一个我遇到问题的简单测试:
import QtQuick 2.2
import QtQuick.Window 2.1
Window {
visible: true
visibility: Window.FullScreen
Rectangle {
anchors.fill: parent
color: "red"
Canvas {
anchors.fill: parent
onPaint: {
var ctx = getContext("2d")
ctx.fillStyle = "blue"
ctx.fillRect(0, 0, width, height)
}
}
}
}
这就是发生的事情。如果我启动上面的应用程序肖像,它会用红色背景矩形和顶部的蓝色画布填充屏幕(我实际上可以看到它绘制了两者)。当我去风景时,这就是我最终的结果。
画布不再填满整个屏幕。它现在似乎是一个完美的正方形并剪掉了右侧(它没有拉伸。如果有更多内容,你会看到这个)。如果我开始横向并转到纵向,也会发生类似的事情:
【问题讨论】:
-
你没有提到实际出了什么问题。如果您发布屏幕截图或描述问题,我们或许能够在无法访问 Android 设备的情况下查明您的问题。
-
对不起。我编辑了这个问题,并添加了一些关于正在发生的事情的插图。
-
谢谢。您使用的是哪个 Qt 版本?
-
Android 4.1.2 上的 Qt 5.3
-
快速检查可能是添加关于画布宽度和高度变化的绘画请求(也显示带有文本元素的绘画请求,或登录更改)
标签: android canvas orientation qml qt-quick