>我有一个qt小部件应用程序,如果屏幕方向是纵向还是横向,或者如果窗口大小调整为高于宽度,则需要重新排列自己。该应用程序在两种模式下都具有所有相同的小部件和功能,只是布局不同。
我意识到您可以根据调整大小事件在运行时在布局中移动小部件,但这本身并不理想,因为您无法事先在设计器中看到它的外观。我还在档案中找到了这个例子:https://doc.qt.io/archives/qt-4.8/qt-widgets-orientation-example.html 他们有两个单独的 UI 可以选择在屏幕调整大小时显示哪个,但在这种情况下,每个 UI 更改、插槽连接等都必须对两个 UI 进行,这也非常麻烦、不可扩展且容易出错。
有没有一种干净的方法来处理这种情况?或者至少在不运行应用程序的情况下可视化两种模式?Qt版本是5.12+
理论上,您可以创建 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
}
}
}
好吧,至少这是它的要点...一些链接:装载机 , 屏幕