PyQt4 菜单从右到左对齐
Right-to-left alignment of PyQt4 menus
我使用 PyQt4 来设计 GUI。
我想知道对于阿拉伯语或波斯语等语言,有没有一种方法可以将菜单项从右到左而不是从左到右排序?
您必须使用QApplicacion
的setLayoutDirection()
方法来指示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_())
截图:
我使用 PyQt4 来设计 GUI。
我想知道对于阿拉伯语或波斯语等语言,有没有一种方法可以将菜单项从右到左而不是从左到右排序?
您必须使用QApplicacion
的setLayoutDirection()
方法来指示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_())
截图: