PyQt4 工具栏按钮对齐

Posted

技术标签:

【中文标题】PyQt4 工具栏按钮对齐【英文标题】:PyQt4 Toolbar Button Alignment 【发布时间】:2013-09-13 06:03:57 【问题描述】:

我有这个代码

    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())

给我这个

我用过

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

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

如果我删除QtCore.Qt.AlignLeading

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

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

另一个问题是

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于PyQt4 工具栏按钮对齐的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4 QPushButton 文本和图标对齐

将 extjs dockeditems 中的按钮与左侧的分页工具栏右对齐

Sencha Touch 工具栏中的左右对齐按钮

Android v7 工具栏按钮对齐

Sencha Touch:如何在底部停靠的工具栏中居中对齐两个按钮?

ExtJS--如何居中对齐两个工具栏按钮