1. 程式人生 > 程式設計 >python GUI庫圖形介面開發之PyQt5下拉列表框控制元件QComboBox詳細使用方法與例項

python GUI庫圖形介面開發之PyQt5下拉列表框控制元件QComboBox詳細使用方法與例項

PyQt5下拉列表框控制元件QComboBox介紹

QComboBox是一個集按鈕和下拉選項於一體的控制元件,也稱做下拉列表框

QComboBox類中的常用方法如表

方法 描述
addItem() 新增一個下拉選項
addItems() 從列表中新增下拉選項
Clear() 刪除下拉選項集合中的所有選項
count() 返回下拉選項集合中的數目
currentText() 返回選中選項的文字
itemText(i) 獲取索引為i的item的選項文字
currentIndex() 返回選中項的索引
setItemText(int index,text) 改變序列號為index的文字

QComboBox類中的常用訊號

訊號 含義
Activated 當用戶選中一個下拉選項時發射該訊號
currentIndexChanged 當下拉選項的索引發生改變時發射該訊號
highlighted 當選中一個已經選中的下拉選項時,發射該訊號

下拉列表框控制元件QComboBox按鈕的使用例項

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class ComboxDemo(QWidget):
  def __init__(self,parent=None):
    super(ComboxDemo,self).__init__(parent)
    #設定標題
    self.setWindowTitle('ComBox例子')
    #設定初始介面大小
    self.resize(300,90)

    #垂直佈局
    layout=QVBoxLayout()
    #建立標籤,預設空白
    self.btn1=QLabel('')

    #例項化QComBox物件
    self.cb=QComboBox()
    #單個新增條目
    self.cb.addItem('C')
    self.cb.addItem('C++')
    self.cb.addItem('Python')
    #多個新增條目
    self.cb.addItems(['Java','C#','PHP'])
    #當下拉索引發生改變時發射訊號觸發繫結的事件
    self.cb.currentIndexChanged.connect(self.selectionchange)

    #控制元件新增到佈局中,設定佈局
    layout.addWidget(self.cb)
    layout.addWidget(self.btn1)
    self.setLayout(layout)

  def selectionchange(self,i):
    #標籤用來顯示選中的文字
    #currentText():返回選中選項的文字
    self.btn1.setText(self.cb.currentText())
    print('Items in the list are:')
    #輸出選項集合中每個選項的索引與對應的內容
    #count():返回選項集合中的數目
    for count in range(self.cb.count()):
      print('Item'+str(count)+'='+self.cb.itemText(count))
      print('current index',i,'selection changed',self.cb.currentText())

if __name__ == '__main__':
  app=QApplication(sys.argv)
  comboxDemo=ComboxDemo()
  comboxDemo.show()
  sys.exit(app.exec_())

效果圖如下

python GUI庫圖形介面開發之PyQt5下拉列表框控制元件QComboBox詳細使用方法與例項

下拉列表框控制元件QComboBox程式碼分析:

在這個例子中顯示了一個下拉列表框和一個標籤,其中下拉列表框中有幾個選項,既可以使用QCombobox的addItem()方法新增單個選項,也可以使用addItems()方法新增多個選項:標籤顯示的是從下拉列表框中選擇的選項

    #單個新增條目
    self.cb.addItem('C')
    self.cb.addItem('C++')
    self.cb.addItem('Python')
    #多個新增條目
    self.cb.addItems(['Java','PHP'])

當下拉列表框選中的選項發生改變時將發射currentIndexChanged訊號,連結到自定義的槽函式selectionChange()

self.cb.currentIndexChanged.connect(self.selectionchange)

在方法中,當選中下拉列表框中的一個選項時,將把該選項文字設定為標籤的文字,並調整標籤的大小

  def selectionchange(self,i):
    #標籤用來顯示選中的文字
    #currentText():返回選中選項的文字
    self.btn1.setText(self.cb.currentText())

本文詳細介紹了PyQt5下拉列表框控制元件QComboBox詳細使用方法與例項,更多關於PyQt5下拉列表框控制元件QComboBox的知識請檢視下面的相關連結