我有一个QComboBox
,当用户启动程序时,该空白开始。稍后,将内容添加到小部件,包括每个索引的图标。如果我在程序启动前添加内容,则QComboBox
的图标和大小是完美的。但是,如果在程序初始化后添加它,则图标会被裁剪,大小也不完美。
from PySide2 import QtWidgets, QtGui, QtCore
class MyWindow(QtWidgets.QWidget):
def __init__(self):
super(self.__class__, self).__init__()
self.setMinimumSize(500,400)
self.layout = QtWidgets.QVBoxLayout(self)
self.setLayout(self.layout)
self.addNow = False
self.combo = QtWidgets.QComboBox()
self.btn = QtWidgets.QPushButton('Add Items')
self.combo.setStyleSheet('font-size: 20px')
self.layout.addWidget(self.combo)
self.layout.addWidget(self.btn)
self.items = ['hi', 'hello', 'goodbye', 'nice day', 'bonjour']
self.icon = QtGui.QPixmap('checker.png')
self.combo.setIconSize(QtCore.QSize(40,40))
if self.addNow:
self.addItems()
self.btn.setDisabled(True)
self.btn.clicked.connect(self.addItems)
def addItems(self):
for item in self.items:
self.combo.addItem(self.icon, item)
import sys
app = QtWidgets.QApplication(sys.argv)
mywin = MyWindow()
mywin.show()
sys.exit(app.exec_())
我尝试了多个sizePolicy
,但都无法调整图标的大小。
答案 0 :(得分:0)
有2种方法可以解决问题,但并不理想。
self.combo.setIconSize(QtCore.QSize(40,40))
。这将导致窗口小部件展开而不会“推”其他布局中的其他窗口小部件。OR
QComboBox
的字体大小设置为与像素图的大小相同。添加项目,然后重置样式表。非常hacky。self.combo.setStyleSheet('font-size: 40px')
self.addItems()
self.combo.setStyleSheet('font-size: 20px')