【发布时间】:2019-11-03 11:40:15
【问题描述】:
我一直在自学如何使用python 和PyQt5 来制作用户界面。 Fusion 样式看起来非常好,但我注意到当我将该样式应用于应用程序时,QComboBox 命令 setMaxVisibleItems 不再起作用。相反,即使应用了setMaxVisibleItems,融合样式QComboBox 也会一次显示所有项目(或屏幕大小允许的尽可能多的项目)。
我想可能是我使用了错误的命令,所以我删除了融合样式并尝试使用多个不同的值设置最大可见项目。每个都很好,所以我确信它一定是融合风格本身。有没有办法改变融合风格的工作方式或强制它应用setMaxVisibleItems?我在下面包含了一些示例代码。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QPushButton
class Example(QMainWindow):
def __init__(self):
super().__init__()
combo = QComboBox(self)
counter = 1
while (counter < 21):
combo.addItem(str(counter))
counter = counter + 1
combo.setMaxVisibleItems(5)
combo.move(50, 50)
self.qlabel = QLabel(self)
self.qlabel.move(50,16)
combo.activated[str].connect(self.onChanged)
self.setGeometry(50,50,320,200)
self.setWindowTitle("QLineEdit Example")
self.show()
def onChanged(self, text):
self.qlabel.setText(text)
self.qlabel.adjustSize()
if __name__ == '__main__':
app = QApplication(sys.argv)
#app.setStyle("fusion")
ex = Example()
sys.exit(app.exec_())
应用fusion 样式意味着应用程序一次显示所有20 个项目。注释掉融合样式意味着应用程序一次显示 5 个项目。
【问题讨论】:
标签: python pyqt pyqt5 qcombobox