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_())
网友评论