Qt扭转了所有小部件的位置

mor*_*adi 2 qt

我默认QT编程语言是english既然englishleft to right 我有一个菜单,并在左侧的一些按钮,但是当我改变我的计划对那些具有语言right to left方向,放置菜单,并在左侧的按钮是没有意义的.

所以我想知道是否可以选择将所有小部件撤销到正确的位置?

小智 6

使用QML,已经有大量关于如何执行此操作的文档,最明显的layoutDirection: Qt.RightToLeft是与标准订单相比将所有窗口小部件的子项按相反顺序放置的属性

http://doc.qt.io/qt-5/qtquick-positioning-righttoleft.html

您还可以选择使用qApp->setLayoutDirection (Qt::RightToLeft);main.cpp开头的代码行进行全局设置

https://witekio.com/blog/qt-internationalization-arabic-chinese-right-left/

链接页面的示例:

Page {
     LayoutMirroring.enabled: (Qt.application.layoutDirection === Qt.RightToLeft)
     LayoutMirroring.childrenInherit: true
     Row {
         // Row will use right-to-left order when LayoutMirror.enabled = true
         Text {
              id: songNumber
              text: "1."
              horizontalAlignment: Text.AlignLeft // Alignment will adjust too. But don't fail to mention it         
                                                  // or the text won't change its alignment
         Text {
              id: artistItem
              text: "Some Artist"
              horizontalAlignment: Text.AlignLeft
              // Manually change elide side
              elide: (Qt.application.layoutDirection === Qt.LeftToRight) ? 
Text.ElideRight : Text.ElideLeft
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述