私が考えることができる1つのオプションがあります。を介して特定のメニューの方向を設定でき、setLayoutDirection(QtCore.Qt.RightToLeft)
スペースがある場合は常に左に展開されます。
ただし、トップレベルのメニューが左から右に配置されている場合、サブメニューが右から左に配置されている場合、見栄えがよくありません。少なくとも、私の Windows 7 ではそうではありません:
import sys
from PyQt4 import QtGui, QtCore
app = QtGui.QApplication(sys.argv)
main = QtGui.QMainWindow()
menubar = QtGui.QMenuBar()
menus = []
submenus = {}
for x in range(10):
# top menus
menu = QtGui.QMenu('Top %d' % x)
menus.append(menu)
# set direction
menu.setLayoutDirection(QtCore.Qt.RightToLeft)
# add to menubar
menubar.addMenu(menu)
for y in range(5):
# a sub-menu
submenu = QtGui.QMenu('Level 1 - %d' % y)
# some dummy actions
submenu.addAction('Level 2 - 1')
submenu.addAction('Level 2 - 2')
# keep reference
submenus[(x,y)] = submenu
# add to the top menu
menu.addMenu(submenu)
main.setMenuBar(menubar)
main.show()
sys.exit(app.exec_())
