Qt小部件应用程序 - 基于方向的不同布局



>我有一个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
        }
    }
}

好吧,至少这是它的要点...一些链接:装载机 , 屏幕

相关内容

  • 没有找到相关文章

最新更新