PyQt4 菜单从右到左对齐

Right-to-left alignment of PyQt4 menus

我使用 PyQt4 来设计 GUI。

我想知道对于阿拉伯语或波斯语等语言,有没有一种方法可以将菜单项从右到左而不是从左到右排序?

您必须使用QApplicacionsetLayoutDirection()方法来指示Qt.RightToLeft地址,如下所示:

class menudemo(QMainWindow):
   def __init__(self, parent = None):
      super(menudemo, self).__init__(parent)

      layout = QHBoxLayout()
      bar = self.menuBar()
      file = bar.addMenu("ملف")
      file.addAction("الجديد")

      save = QAction("حفظ",self)
      file.addAction(save)

      edit = file.addMenu("تصحيح")
      edit.addAction("نسخ")
      edit.addAction("معجون")

      quit = QAction("استقال",self) 
      file.addAction(quit)
      file.triggered[QAction].connect(self.processtrigger)
      self.setLayout(layout)
      self.setWindowTitle("RTL")

   def processtrigger(self,q):
      print(q.text()+" is triggered")

if __name__ == '__main__':
   app = QApplication(sys.argv)
   app.setLayoutDirection(Qt.RightToLeft)
   ex = menudemo()
   ex.show()
   sys.exit(app.exec_())

截图: