环境PyQt5+VSCode
在Display Widgets、Input Widgets、Item Widgets中分别将Label、Combo Box、List Widget拖入窗口中。得到如下图
文件保存为pyqt5.ui。在VSCode中,右键点击文件pyqt5.ui选Compile From,得到Ui_pyqt5.py。新建文件pyqt5.py。
import sys
from Ui_pyqt5 import Ui_MainWindow
from PyQt5.QtWidgets import QApplication, QMainWindow
class MyMainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None): #parent 参数
super(MyMainWindow, self).__init__(parent)
self.setupUi(self)
self.label.setText("分组")
self.label_2.setText("")
self.zhuming = ["第一组","第二组","第三组"]
self.xiangming = [["第一项","第二项","第三项"],["第四项","第五项"],["第六项","第七项","第八项"]]
self.comboBox.addItems(self.zhuming)#添加选项
self.comboBox.currentIndexChanged.connect(self.func1)#选中发生变化时发送
self.func1()
self.listWidget.itemClicked.connect(self.func2)#点击时发送
def func1(self):
self.listWidget.clear()#清空listWidget
i = self.comboBox.currentIndex()#当前选中的序号
self.listWidget.addItems(self.xiangming[i])#添加选项
def func2(self, item):
self.label_2.setText("项目是"+item.text())
app = QApplication(sys.argv)
win = MyMainWindow()
win.show()
sys.exit(app.exec_())
按F5运行得到
comboBox
方法
方法 | 内容 |
---|---|
addItem(str) | 增加一个选项 |
addItems(list) | 增加多个选项 |
currentText() | 获取选中项的文本 |
currentIndex() | 获取选中项的索引 |
itemText(index) | 获取索引为index的项的文本 |
setItemText(index, text) | 设置索引为index项的文本 |
count() | 获取所有项的数量 |
clear() | 删除所有选项 |
信号
信号 | 内容 |
---|---|
activated | 选中一个下拉项时 |
currentIndexChanged | 下拉选项发生改变时 |
listWidget
方法
方法 | 内容 |
---|---|
addItem(str) | 增加一个选项 |
addItems(list) | 增加多个选项 |
clear() | 删除所有项 |
信号
信号 | 内容 |
---|---|
itemClicked | 点击时 |
槽函数带一个item参数
def func(self,item):
...
item的方法
方法 | 内容 |
---|---|
text() | 获取选项的文本 |
isSelected() | 是否选中 |