问题:ui设计时使用的是1920x1080的布局,转移到开发板上显示效果如下,如果正确显示界面?
方法1:直接改变屏幕显示方向,我也尝试了博客上的各种方法,最后没有成功
方法2:直接旋转qml图像,注意:旋转之后图像位置还是有问题需要进行平移
原来的代码
import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.5
import "page/qml"as Qml
ApplicationWindow {
title: qsTr("Hello World")
property string loginAccount: ""
property string loginPasswd: ""
id:root
width: 1920
height:1080
visible: true
Image {
source: "img/bg.png"
}
Loader {
id: pageLoader
anchors.fill: parent
source: "./page/Loading.qml"
}
Timer {
interval: 5000 // 延时2000毫秒(即2秒)
repeat: false // 不重复
running: true // 立即开始计时
onTriggered: {
pageLoader.source = "./page/Login.qml"
}
}
Qml.InputKeyboard{
id:inputKeyboard
}
}
修改后代码如下
import QtQuick 2.6
import QtQuick.Window 2.2
import QtQuick.Controls 2.5
import "page/qml"as Qml
ApplicationWindow {
title: qsTr("Hello World")
property string loginAccount: ""
property string loginPasswd: ""
id:root
width: 1080
height:1920
visible: true
Rectangle{
width: 1920
height: 1080
rotation: 270
x:-(parent.height - parent.width)/2
y:(parent.height - parent.width)/2
Image {
source: "img/bg.png"
}
Loader {
id: pageLoader
anchors.fill: parent
source: "./page/Loading.qml"
}
Timer {
interval: 5000 // 延时2000毫秒(即2秒)
repeat: false // 不重复
running: true // 立即开始计时
onTriggered: {
pageLoader.source = "./page/Login.qml"
}
}
Qml.InputKeyboard{
id:inputKeyboard
}
}
}
结论:调换窗口长和宽的尺寸为屏幕实际方向1080x1920,然后可以用一个Rectangle(1920x1080设计的UI尺寸)控件把界面全部包含起来,旋转rotation 270°,最后把x和y坐标平移-(parent.height - parent.width)/2和(parent.height - parent.width)/2。(注意最后的平移的大小可能和开发板有关,可以自己尝试一下)