QComboBox : 下拉選單小部件,允許用戶從一個選項列表中進行選擇。可以動態地添加選項,並處理選擇變更的事件。
QComboBox 添加選項的方法是 addItem(str)
。插入選項是使用 insertItem(index,str)
。刪除選項則是使用 removeItem(index)
。
addItem(str)
: 添加單個元件,下面是添加 "選項1" 和 "選項2" 的範例。from PySide6.QtWidgets import QApplication, QComboBox , QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 200, 100)
combo_box = QComboBox(self) #創建一個QComboBox
combo_box.setGeometry(0, 0, 200, 20)#設置QComboBox 大小
combo_box.addItem("選項 1") #添加選項 1
combo_box.addItem("選項 2") #添加選項 2
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
如果要一次添加多個選項則可以使用 addItems([])
添加多個元件,他可以直接使用序列來增加,下面是一個直接添加 ['a','b','c',''d] 序列的範例。
from PySide6.QtWidgets import QApplication, QComboBox , QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 200, 100)
combo_box = QComboBox(self) #創建一個QComboBox
combo_box.setGeometry(0, 0, 200, 20) #設置QComboBox 大小
combo_box.addItems(['a','b','c','d']) #一次新增 a、b、c、d 選項
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
insertItem(index,str)
: 插入單個選項,也有插入多個選項 insertItems(index,[])
。 下面範例是在"選項1" 和 "選項2" 中間插入 "插入的選項" 。from PySide6.QtWidgets import QApplication, QComboBox , QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 200, 100)
combo_box = QComboBox(self) #創建一個QComboBox
combo_box.setGeometry(0, 0, 200, 20) #設置QComboBox 大小
combo_box.addItem("選項 1") #添加選項 1
combo_box.addItem("選項 2") #添加選項 2
combo_box.insertItem(1,"插入的選項") #插入選項在 "選項1" 和 "選項2" 中間
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
from PySide6.QtWidgets import QApplication, QComboBox , QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 200, 100)
combo_box = QComboBox(self) #創建一個QComboBox
combo_box.setGeometry(0, 0, 200, 20) #設置QComboBox 大小
combo_box.addItems(['a','b','c','d']) #一次新增 a、b、c、d 選項
combo_box.removeItem(1)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
currentIndexChanged.connect(function)
: 當選項改變時使用。下面是一個當選向改變時,標籤的文字也會改變。from PySide6.QtWidgets import QApplication, QComboBox, QLabel, QVBoxLayout, QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 300, 200)
self.combo_box = QComboBox()
self.combo_box.addItems(["a","b"])
self.combo_box.currentIndexChanged.connect(lambda: self.label.setText("改變了"))
self.label = QLabel("選擇一個選項", self)
layout = QVBoxLayout(self)
layout.addWidget(self.combo_box)
layout.addWidget(self.label)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
currentText()
: 當前選擇選項的文字。下面範例是當更換了選項,標籤文字會顯示你選的選項文字。from PySide6.QtWidgets import QApplication, QComboBox, QLabel, QVBoxLayout, QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 300, 200)
self.combo_box = QComboBox()
self.combo_box.addItems(["a","b","c","d"])
self.combo_box.currentIndexChanged.connect(lambda: self.label.setText(self.combo_box.currentText()))
self.label = QLabel("選擇一個選項", self)
layout = QVBoxLayout(self)
layout.addWidget(self.combo_box)
layout.addWidget(self.label)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
currentIndex()
: 當前選擇的選項的索引值。下面範例是當更換了選項,標籤文字會顯示你選的選項索引。from PySide6.QtWidgets import QApplication, QComboBox, QLabel, QVBoxLayout, QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 300, 200)
self.combo_box = QComboBox()
self.combo_box.addItems(["a","b","c","d"])
self.combo_box.currentIndexChanged.connect(lambda: self.label.setText(f"{self.combo_box.currentIndex()}"))
self.label = QLabel("選擇一個選項", self)
layout = QVBoxLayout(self)
layout.addWidget(self.combo_box)
layout.addWidget(self.label)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
setDisabled(bool)
: 設定是否禁用。from PySide6.QtWidgets import QApplication, QComboBox, QLabel, QVBoxLayout, QWidget
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QComboBox 範例")
self.setGeometry(100, 100, 300, 200)
combo_box = QComboBox(self)
combo_box.addItems(["a","b","c","d"])
combo_box.setGeometry(0, 0, 200, 20)#設置QComboBox 大小
combo_box.setDisabled(True)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec()
功能 | 方法 |
---|---|
添加選項(單個) | addItem(str) |
添加選項(多個) | addItems([]) |
插入選項(單個) | insertItem(index,str) |
插入選項(多個) | insertItems(index,[]) |
刪除選項 | removeItem(index) |
功能 | 方法 |
---|---|
更換選項時觸發 | currentIndexChanged.connect(function) |
功能 | 方法 |
---|---|
當前選項的文字 | currentText() |
當前選項的索引 | currentIndex() |
設定是否禁用 | setDisabled(bool) |