PyQt5 – 当按下按钮时显示组合框的弹出项

  • Post category:Python

当按下按钮时弹出Qt中的组合框一种很常见的界面交互方法,可以使得用户更加方便地选择需要的操作。在Python中的PyQt5模块中,也提供了这样的功能,本文将详细介绍如何使用PyQt5实现“当按下按钮时显示组合框的弹出项”的功能。

安装和导入Qt模块

在使用PyQt5进行GUI界面开发之前,需要先安装PyQt5和Qt Designer模块。安装命令如下:

pip install PyQt5 pyqt5-tools

安装完成之后,需要在代码中导入如下的PyQt5模块:

from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QPushButton, QVBoxLayout

创建组合框和按钮

在代码中创建一个组合框和一个按钮,代码如下:

class Demo(QWidget):

    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.combo = QComboBox()
        self.combo.addItems(['选项1', '选项2', '选项3'])

        self.btn = QPushButton('显示弹出项', self)
        self.btn.clicked.connect(self.show_popup)

        layout = QVBoxLayout()
        layout.addWidget(self.combo)
        layout.addWidget(self.btn)

        self.setLayout(layout)

以上代码中,使用QComboBox()创建了一个组合框,使用addItems()函数添加了组合框的选项,然后使用QPushButton()创建了一个按钮,并将点击事件连接到show_popup()函数中。

实现显示弹出项

在点击按钮时,显示组合框的弹出项,代码如下:

    def show_popup(self):
        self.combo.showPopup()

以上代码中,使用showPopup()函数可以显示组合框的弹出项。

示例说明

下面是两个完整的示例,分别介绍了如何在PyQt5中实现“当按下按钮时显示组合框的弹出项”的功能。

示例1

该示例展示了如何创建一个窗口,其中包含了一个组合框和一个按钮,当单击按钮时,会显示组合框的弹出项。

from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QPushButton, QVBoxLayout

class Demo(QWidget):

    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        self.combo = QComboBox()
        self.combo.addItems(['选项1', '选项2', '选项3'])

        self.btn = QPushButton('显示弹出项', self)
        self.btn.clicked.connect(self.show_popup)

        layout = QVBoxLayout()
        layout.addWidget(self.combo)
        layout.addWidget(self.btn)

        self.setLayout(layout)

    def show_popup(self):
        self.combo.showPopup()

if __name__ == '__main__':
    app = QApplication([])
    demo = Demo()
    demo.show()
    app.exec_()

示例2

该示例展示了如何使用Qt Designer创建界面,在界面上添加组合框和按钮,并将点击事件连接到show_popup()函数中。

from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QPushButton, QVBoxLayout

from ui_demo import Ui_Demo

class Demo(QWidget):

    def __init__(self):
        super().__init__()

        self.ui = Ui_Demo()
        self.ui.setupUi(self)

        self.ui.btn.clicked.connect(self.show_popup)

    def show_popup(self):
        self.ui.combo.showPopup()

if __name__ == '__main__':
    app = QApplication([])
    demo = Demo()
    demo.show()
    app.exec_()

需要先在Qt Designer中创建一个界面,在界面上添加组合框和按钮,并保存为demo.ui文件。然后使用如下命令将demo.ui文件转换为Python代码:

pyuic5 demo.ui -o ui_demo.py

最后在Python代码中导入转换后的Ui_Demo类,并将界面的按钮点击事件连接到show_popup()函数。