Python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
什么是QComboBox
QComboBox是PyQt5中的一个下拉列表框控件,也称为组合框。它是一个用于选择和显示文本的窗口部件,在用户打开列表时,它会显示一组选项,用户可以从中选择一个。
QComboBox的使用
显示选项
你可以使用addItems()
方法添加选项,例如:
self.combobox.addItems(['Python', 'Java', 'C++', 'JavaScript'])
获取当前选项
使用currentText()
方法可以获取当前选项的文本,例如:
text = self.combobox.currentText()
print(text)
获取当前选项的索引
使用currentIndex()
方法可以获取当前选项在列表中的索引值,例如:
index = self.combobox.currentIndex()
print(index)
改变当前选择
使用setCurrentIndex()
方法可以改变当前选择的选项,例如:
self.combobox.setCurrentIndex(2)
这样就会将列表中第三个选项作为当前选项。
清空选项
使用clear()
方法可以清空选项,例如:
self.combobox.clear()
示例1
下面是一个简单的例子,它演示了如何使用QComboBox来选择背景颜色。用户可以从组合框列表中选择不同的颜色,然后单击"更改背景颜色"按钮来更改背景颜色。
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QDialog, QComboBox, QLabel, QPushButton, QVBoxLayout
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.stylesheet = """
background-color: %s;
color: white;
font-size: 28px;
font-weight: bold;
"""
self.setStyleSheet(self.stylesheet % "black")
self.setWindowTitle("QComboBox Demo")
self.resize(400, 200)
vbox_layout = QVBoxLayout()
font = QFont()
font.setPointSize(20)
label = QLabel("请选择背景颜色:")
label.setFont(font)
vbox_layout.addWidget(label)
self.combo_box = QComboBox()
self.combo_box.addItems(["red", "blue", "green", "purple", "yellow"])
self.combo_box.setFont(font)
vbox_layout.addWidget(self.combo_box)
self.change_color_btn = QPushButton("更改背景颜色")
self.change_color_btn.setFont(font)
vbox_layout.addWidget(self.change_color_btn)
self.setLayout(vbox_layout)
self.change_color_btn.clicked.connect(self.change_color)
def change_color(self):
color = self.combo_box.currentText()
self.setStyleSheet(self.stylesheet % color)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
示例2
下面是另一个示例,它演示了如何使用QComboBox来选择不同的皮肤(主题)。用户可以从组合框列表中选择不同的主题,然后单击 "应用" 按钮来应用主题。
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QDialog, QComboBox, QLabel, QPushButton, QGridLayout
class MainWindow(QDialog):
def __init__(self):
super().__init__()
self.setWindowTitle("PyQt5 QComboBox 示例")
self.resize(400, 200)
grid_layout = QGridLayout()
self.setLayout(grid_layout)
font = QFont()
font.setPointSize(16)
label1 = QLabel("主题:")
label1.setFont(font)
grid_layout.addWidget(label1, 0, 0)
self.combobox = QComboBox()
self.combobox.addItems(["浅色", "深色"])
self.combobox.setFont(font)
grid_layout.addWidget(self.combobox, 0, 1)
self.apply_btn = QPushButton("应用")
self.apply_btn.setFont(font)
grid_layout.addWidget(self.apply_btn, 1, 1)
self.apply_btn.clicked.connect(self.apply_theme)
def apply_theme(self):
theme = self.combobox.currentText()
if theme == "浅色":
self.setStyle("Fusion")
elif theme == "深色":
self.setStyle("Fusion")
self.qApp.setStyleSheet("QToolTip { color: #ffffff; background-color: #2a82da; border: 1px solid white; }")
self.qApp.setPalette(QPalette(QColor(39, 40, 34), QColor(74, 72, 69), QColor(139, 134, 130)))
self.qApp.setStyleSheet("QWidget {background-color: #272822; color: #f8f8f2;}")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
这个示例演示了更全面的应用,包括应用不同的皮肤和设置QToolTip的颜色等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例 - Python技术站