我有一个qt窗口小部件应用程序,如果屏幕方向是纵向还是横向,或者窗口的大小调整为大于宽度时,则需要重新排列。该应用程序在两种模式下都具有相同的小部件和功能,只是布局不同。
我意识到您可以在运行时根据调整大小事件在布局中移动小部件,但是这并不理想,因为您无法预先知道设计器中的外观。我还在档案中找到了这个示例:https://doc.qt.io/archives/qt-4.8/qt-widgets-orientation-example.html,其中有两个单独的UI可以选择在屏幕调整大小时显示哪个UI,但是在这种情况下,必须对两个UI进行每个UI更改,插槽连接等操作这也非常麻烦,不可扩展且容易出错。
是否有解决此情况的干净方法?或者至少在不运行应用程序的情况下可视化这两种模式? Qt版本是5.12 +
答案 0 :(得分:0)
理论上,您可以创建2个文件或对象。其中之一是myLandscapeWidget和其他myPortraitWidget。用装载程序将它们包围起来,并可以进行
Loader {
id: myLoader
anchors.fill: parent
sourceComponent: Screen.orientation === Qt.LandscapeOrientation ? land : port
Component {
id: land
myLandscapeWidget {
width: 500
height: 100
}
}
Component {
id: port
myPortraitWidget {
width: 100
height: 500
visible: Screen.orientation !== Qt.LandscapeOrientation
}
}
}