更改ToolButtonStyle时如何防止QToolButton调整大小?

时间:2013-12-26 05:00:31

标签: qt

如何在更改ToolButtonStyle时阻止QToolButton调整大小?我正在Qt.ToolButtonIconOnlyQt.ToolButtonTextOnly之间切换,而QSizePolicy.Fixed似乎没有帮助。

我试图在文本和图标之间来回切换而不改变大小。它应该只是将文本放在按钮的中心。

示例代码(不是我的实际用途);将鼠标移到按钮上以查看更改:

from PyQt4.QtCore import *
from PyQt4.QtGui import *

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        button = QToolButton(self)
        button.enterEvent = lambda e: button.setToolButtonStyle(Qt.ToolButtonTextOnly)
        button.leaveEvent = lambda e: button.setToolButtonStyle(Qt.ToolButtonIconOnly)
        button.setIcon(self.style().standardIcon(QStyle.SP_MediaVolume))
        button.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        button.setText('10')
        button.setToolButtonStyle(Qt.ToolButtonIconOnly)

        toolbar = QToolBar(self)
        toolbar.setIconSize(QSize(32,32))
        toolbar.addWidget(button)
        self.addToolBar(Qt.TopToolBarArea, toolbar)

if __name__ == '__main__':
    import sys
    application = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(application.exec_())

1 个答案:

答案 0 :(得分:1)

只需拨打setFixedSize按钮:

button.setFixedSize(QSize(32,32))