📅  最后修改于: 2023-12-03 15:03:56.110000             🧑  作者: Mango
在 PyQt5 中,使用 QComboBox 组件可以方便地实现下拉列表的功能。然而,有时候我们需要将下拉列表设置为不可编辑的,例如:当我们提供给用户选择皮肤的时候,一些选项是固定的,不允许用户添加自定义的选项。
下面是一个简单的示例代码,演示如何将 QComboBox 组件设置为不可编辑状态,并向其中添加固定的选项:
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QComboBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('皮肤选择')
self.setGeometry(300, 300, 300, 200)
# 创建标签
self.label = QLabel('请选择皮肤:', self)
# 创建下拉列表
self.combo = QComboBox(self)
# 设置下拉列表为不可编辑
self.combo.setEditable(False)
# 添加选项
self.combo.addItem('默认皮肤')
self.combo.addItem('黑色皮肤')
self.combo.addItem('白色皮肤')
# 创建垂直布局,并将标签和下拉列表添加到布局中
vbox = QVBoxLayout()
vbox.addWidget(self.label)
vbox.addWidget(self.combo)
# 将垂直布局设置为窗口的主布局
self.setLayout(vbox)
self.show()
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
在这个示例程序中,我们创建了一个名为 Example 的窗口,其中包含了一个 QLabel(显示一个文本标签)和一个 QComboBox(显示下拉列表)。首先,我们使用 setWindowTitle 和 setGeometry 方法设置了窗口的标题和大小。然后,我们调用了 initUI() 方法,该方法用于创建标签、下拉列表、以及将它们添加到垂直布局中,并将布局设置为窗口的主布局。
在创建下拉列表时,我们设置了 Editable 属性为 False,这意味着下拉列表不允许用户输入任何东西,只能从预设的选项中选择一个。
最后,我们通过调用 show() 方法来显示窗口。
运行程序,你将看到如下图所示的界面:
当你尝试点击下拉列表时,你会发现你无法输入任何东西,只能从三个固定的选项中选择一个。