如何在更改ToolButtonStyle时阻止QToolButton调整大小?我正在Qt.ToolButtonIconOnly
和Qt.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_())
答案 0 :(得分:1)
只需拨打setFixedSize
按钮:
button.setFixedSize(QSize(32,32))