我们经常在使用QT5的时候需要使用到下拉框, 这里精简的介绍下拉框的实现
主要知识点
- QComboBox() 创建一个下拉框对象
- addItems 可以使用列表进行多个下拉框内容添加, 单个添加用addItem
- currentIndexChanged 是用来获取当前选择下拉框的索引, 这也是这个"信号"
- 槽函数需要 有个索引传参, 这样就便于信号和槽的关联
- currentText() 可以获取当前选择的文本内容, 接下来的代码就自由发挥了
- adjustSize() 设置可以让展示适应文本调整尺寸,让展示更美观一些
demo 展示
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class QComboBoxDemo(QWidget):
def __init__(self):
super(QComboBoxDemo, self).__init__()
self.setWindowTitle('下拉列表控件演示')
self.resize(300, 200)
self.v_box_layout = QVBoxLayout()
self.init_ui()
def init_ui(self):
self.label = QLabel('请选择编程语言')
self.combo = QComboBox()
self.combo.addItems(['c++', 'python', 'java', 'golang', 'ruby'])
self.combo.currentIndexChanged.connect(self.select_change)
self.v_box_layout.addWidget(self.label)
self.v_box_layout.addWidget(self.combo)
self.setLayout(self.v_box_layout)
def select_change(self, combo_index):
self.label.setText(f"当前选择的程序语言为: {self.combo.currentText()}")
self.label.adjustSize()
print(f"下拉列表的索引:{combo_index}, 下拉列表的内容: {self.combo.currentText()}")
print(f"下拉列表的数量:{self.combo.count()}, 索引对应的内容: {self.combo.itemText(1)}")
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QComboBoxDemo()
main.show()
sys.exit(app.exec_())
|