PyQt4工具栏按钮对齐

时间:2013-09-13 06:03:58

标签: python python-2.7 pyqt pyqt4 qtgui

我有这段代码

    Menu = self.menuBar()
    EditMenu = Menu.addMenu("&File")
    OptionMenu = Menu.addMenu("&Options")
    HelpMenu = Menu.addMenu("&Help")
    EditMenu.addActions((fileNewAction,faultAction,storeAction,localAction,scheduleAction))
    OptionMenu.addAction(settingAction)

    Toolbar = QtGui.QToolBar()
    Toolbar.setIconSize(QtCore.QSize(50,50))
    Toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon|QtCore.Qt.AlignLeading) #<= Toolbuttonstyle
    self.addToolBar(QtCore.Qt.LeftToolBarArea,Toolbar)
    Toolbar.addActions((fileNewAction,faultAction,scheduleAction,storeAction,localAction,settingAction))
    settings = QtCore.QSettings()
    self.restoreGeometry(settings.value("Geometry").toByteArray())

给我这个

enter image description here

我用过

Toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon|QtCore.Qt.AlignLeading)

显示工具栏按钮右侧的文本,并将所有工具栏按钮图像对齐到左侧。但是文本没有出现在右侧。

如果我删除了QtCore.Qt.AlignLeading

我得到像这样的未对齐(左侧)按钮

enter image description here

(1)如何让我的工具栏按钮图标左对齐并同时在右侧显示文字?

另一个问题是

(2)当我将鼠标悬停在每个按钮上时,如何调整raised button效果的宽度?我希望所有按钮的宽度都相同。根据文本的长度,宽度似乎有所不同。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

恕我直言,问题是QToolBar单独决定每个按钮的大小,完全忽略相邻的按钮。但您可以手动设置大小:

for action in my_toolbar.actions():
    widget = my_toolbar.widgetForAction(action)
    widget.setFixedSize(width, height)