PySide2基础篇(七)——QComboBox运用
PySide2基础篇(七)——QComboBox运用
前言:
阅读这篇文章我能学到什么?
组合框是进行选择性输入常用的控件,这篇文章将介绍它的基本用法。
——如果你觉得这是一篇不错的博文,希望你能给一个小小的赞,感谢您的支持。
1 创建一个组合框
通过类QComboBox
创建一个组合框对象,addItem()
函数用于给组合框添加项。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QComboBox
app = QApplication([])
MainWindow = QMainWindow()
ComboBox = QComboBox(MainWindow)
ComboBox.addItem("1")
ComboBox.addItem("2")
ComboBox.addItem("3")
MainWindow.show()
app.exec_()
运行结果:
2 对组合框项的操作
一个组合框可以含有多个项供选择,我们可以对这些项进行添加、删除、修改等操作。
2.1 清空组合框
清空组合框的项很简单,只需要调用Clear()
函数即可删除组合框所有的项。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QComboBox
app = QApplication([])
MainWindow = QMainWindow()
ComboBox = QComboBox(MainWindow)
ComboBox.addItem("1")
ComboBox.addItem("2")
ComboBox.addItem("3")
ComboBox.clear() #清空组合框项
MainWindow.show()
app.exec_()
运行结果:
2.2 插入组合框
有时候需要在某两项组合框之间插入一项,可以使用InsertItem()
函数进行插入新项。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QComboBox
app = QApplication([])
MainWindow = QMainWindow()
ComboBox = QComboBox(MainWindow)
ComboBox.addItem("1")
ComboBox.addItem("2")
ComboBox.addItem("3")
ComboBox.insertItem(1, "0") #索引1后插入项
MainWindow.show()
app.exec_()
运行结果:
2.3 失能组合框
禁用组合框可以使用setEnabled()
函数。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QComboBox
app = QApplication([])
MainWindow = QMainWindow()
ComboBox = QComboBox(MainWindow)
ComboBox.addItem("1")
ComboBox.addItem("2")
ComboBox.addItem("3")
ComboBox.setEnabled(False) #失能组合框
MainWindow.show()
app.exec_()
运行结果:
3 组合框的选择
通常我们选择组合框的某一项之后,还会有个点击按钮确定的动作。currentIndex()
函数用于获取当前选中项的索引(第一项索引为0),currentText()
函数用于获取当前选中项的文本。另外可以使用在函数addItem()
中添加参数给项设置图标。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QComboBox, QPushButton
from PySide2.QtCore import Slot
from PySide2.QtGui import QIcon
app = QApplication([])
MainWindow = QMainWindow()
PushButton = QPushButton(MainWindow)
PushButton.setText("按钮")
PushButton.move(90, 0)
PushButton.resize(50, 20)
Icon = QIcon(".\png\PNG.png")
ComboBox = QComboBox(MainWindow)
ComboBox.move(0, 0)
ComboBox.resize(80, 20)
ComboBox.addItem(Icon, "Item1")
ComboBox.addItem(Icon, "Item2")
ComboBox.addItem(Icon, "Item3")
@Slot()
def PressButton():
print(ComboBox.currentIndex(), ComboBox.currentText())
PushButton.clicked.connect(PressButton)
MainWindow.show()
app.exec_()
运行结果: