PyQt5按钮单击事件,退出程序

1.注意项:

当使用QPushButton.clicked.connect(lambda:self.信号槽方法)。connect方法传参数时,需要加上“lambda:”

2.步骤:

  • 添加一个按钮 self.button1 = QPushButton('按钮上的文本')。
  • 创建水平布局对象QHBoxLayout,并使用setWidget方法,将button1添加进去。
    layout = QHBoxLayout()
    layout.addWidget(self.button1)
  • 主框架Widget,所有组件的根。将所有组件添加到主框架中。
    mainFrame = QWidget()
    mainFrame.setLayout(layout)
  • 将主框架放在主窗口
    self.setCentralWidget(mainFrame)
  • 自定义槽:用来处理button的点击事件。onClick_Button()
    sender = self.sender() \获取哪一个组件是发送者
  • 将按钮的信号与槽关联在一起
    self.button1.clicked.connect(lambda: self.onClick_Button())
import sys
from PyQt5.QtWidgets import QHBoxLayout, QMainWindow, QApplication, QPushButton, QWidget


class QuitApplication(QMainWindow):
    def __init__(self):
        super(QuitApplication, self).__init__()
        self.resize(300, 400)
        self.setWindowTitle('退出应用程序')

        # 添加button
        self.button1 = QPushButton('退出应用程序')
        self.button1.clicked.connect(lambda: self.onClick_Button())

        # 创建水平布局对象
        layout = QHBoxLayout()
        # 将组件添加到水平布局上
        layout.addWidget(self.button1)

        # 将所有部件都放在mainFrame上
        mainFrame = QWidget()
        # 将layout的内容放在mainFrame上
        mainFrame.setLayout(layout)

        # 将mainFrame放在主窗口上
        self.setCentralWidget(mainFrame)

    # 按钮单击事件(自定义的槽)
    def onClick_Button(self):
        # 通过sender(发件人)方法来获取哪一个组件是发送者
        sender = self.sender()
        print(sender.text() + ' 按钮被按下')

        # 得到一个实例
        app = QApplication.instance()
        # 退出应用程序
        app.quit()



if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QuitApplication()
    main.show()
    sys.exit(app.exec_())
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容