PyQt5基本窗口控件(六)QCombox
发布时间:2023-01-09 22:32:27 262
相关标签: # python
(PyQt5基本窗口控件(六)QCombox)
- QComboBox是一个集按钮和下拉选项于一体的控件,也叫下拉列表框。
- QComboBox类中的常用方法
方法 | 描述 |
---|---|
addItem() | 添加一个下拉选项 |
addItems() | 从列表中添加下拉选项 |
Clear() | 删除下列选项集合中的所有选项 |
count() | 返回下拉选项集合中的总数量 |
itemText(i) | 返回选中选项的文本 |
currentIndex() | 返回选中项的索引 |
setItemText(in index,text) | 改变序号为index项的文本 |
- QComboBox类中的常用信号
信号 | 含义 |
---|---|
Activated | 当用户选中一个下拉选项时发射该信号 |
currentIndexChanged | 当下列选项的索引发生改变时发射该信号 |
highlighted | 当选中一个已经选中的下列选项时,发射该信号 |
案例十七 QComboBox按钮的使用
# -*- coding:utf-8 -*-
"""
# @Time:2022/12/9 0009 8:11
# @Author:晚秋拾叶
# @File:qt04_QComboBox.py
# @PyCharm之Python
"""
import sys
from PyQt5.QtWidgets import *
class ComboxDemo(QWidget):
def __init__(self, parent=None):
super(ComboxDemo, self).__init__(parent)
self.setWindowTitle("ComBox例子")
self.resize(500, 90)
VBlayout = QVBoxLayout()
self.lb1 = QLabel("")
self.cb = QComboBox()
self.cb.addItem("C")
self.cb.addItem("C++")
self.cb.addItems(["Java", "C#", "Python"])
self.cb.currentIndexChanged.connect(self.selectionchange)
VBlayout.addWidget(self.cb)
VBlayout.addWidget(self.lb1)
self.setLayout(VBlayout)
def selectionchange(self, i):
self.lb1.setText(self.cb.currentText())
print("Item in the list are:")
for count in range(self.cb.count()):
print("Item" + str(count) + "=" + self.cb.itemText(count))
# 此处比原书多了if语句,更清晰展示后台的结果
if count == i:
print("Current index", i, "selection changed", self.cb.currentText())
if __name__ == '__main__':
app = QApplication(sys.argv)
win = ComboxDemo()
win.show()
sys.exit(app.exec_())
- 代码分析
- 这个例子显示了一个下拉列表框和一个标签,其中下拉列表有5个选项有5个选项,这里使用addItem()方法添加一个或多个选项。
self.cb = QComboBox()
self.cb.addItem("C")
self.cb.addItem("C++")
self.cb.addItems(["Java", "C#", "Python"])
- 当下拉列表框选项改变时,发射currentIndexChanged信号,连接到自定义槽函数selectiongchange()
self.cb.currentIndexChanged.connect(self.selectionchange)
- 在选中一个选项时,把该选项文本设置为标签的文本,并调整标签的大小
def selectionchange(self, i):
self.lb1.setText(self.cb.currentText())
- 此处,原作代码有所改动,让后台打印清晰
def selectionchange(self, i):
self.lb1.setText(self.cb.currentText())
print("Item in the list are:")
for count in range(self.cb.count()):
print("Item" + str(count) + "=" + self.cb.itemText(count))
if count == i:
print("Current index", i, "selection changed", self.cb.currentText())
- 效果如图
文章来源: https://blog.51cto.com/u_15930659/5990675
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报