特别说明,这些代码都是参考至一个视频教程。“Pyqt5 Lesson”
#仍然先整理一下思路
#这一次是用一个类来演示signal和slot如何联动
'''
既然用到类,那么和之前直接使用函数是不同的,该演示包括如下几部分内容
1. 类的定义,需要使用QtWidget.Qwidiget函数(1行),
2. 类之中必须有的__init__函数,需要传递一个self变量,应用一个super函数,并且调用一个init_ui函数(3行)
3. 定义init_ui函数,这个函数:
定义PushButton,定义了QLabel,(2行)
并且将Label放进QHBoxLayout中,(4行)
将Button和HLayout放进QVBoxLayout中,(3行)
然后将VLayout放进window中并设置window的title,(2行)
并调用与button的connect的函数,(1行)
最后显示整个window。(1行)
4. 定义函数btn_click函数,用来制定button被按下时的操作。(2行)
5. 调用类,首先仍然是调用QtWidegets.QApplication得到app,然后调用类window,最后结束退出。(3行)
'''
import sys
from PyQt5 import QtWidgets
class window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.init_ui()
#值得注意的是,在类里面调用函数,需要用self.xxx的形式,self就是类本身
def init_ui(self):
self.b=QtWidgets.QPushButton("Push Me")
self.l=QtWidgets.QLabel('Look at Me')
h_box=QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addWidget(self.l)
h_box.addStretch()
v_box=QtWidgets.QVBoxLayout()
v_box.addWidget(self.b)
v_box.addLayout(h_box)
self.setLayout(v_box)
self.setWindowTitle("Signal and Slot")
#本节的要点就是这里,利用self.b.clicked.connect将click button这个动作传递给了函数btn.click。而btn.click是在text中显示“Clicked”这一简单文字
self.b.clicked.connect(self.btn_click)
self.show()
def btn_click(self):
self.l.setText("Clicked")
app=QtWidgets.QApplication(sys.argv)
w_window=window()
sys.exit(app.exec_())直接运行程序得到如下界面
点击Push Me之后得到如下界面
本文介绍了PyQT中Signal和Slot的概念及其使用,通过一个实际的Push Me按钮点击事件来展示其工作原理。读者将了解到如何在PyQT界面中实现按钮点击后的交互逻辑。
1050

被折叠的 条评论
为什么被折叠?



