pyqt5 自定义信号与槽中emit的作用
像下面的例子,信号与槽为独立的两个类,但是细心地初学者会发现两个类之间的参数是不能随便互相访问的,即使他们都是的父类一样。
这时候函数的传递就是emit完成的。
import sys
from time import time
from PyQt5.QtCore import *
class A(QObject):
namechenged = pyqtSignal(str)
def init(self,name=‘hiu’):
QObject.init(self)
self.setname(name)
# 定义一个发射信号的方法,name为信号所带的参数
def setname(self,name):
self.__name=name
self.namechenged.emit(self.__name)
# 这里是对应信号namechanged的槽处理函数,name为来自信号的参数
class B(QObject):
def nameset(self, name):
print(“Hello World!”,name)
if name == “main”:
app = QCoreApplication(sys.argv)
a = A()
b = B()
# 将信号和槽连接
a.namechenged.connect(b.nameset)
a.setname(“dash”)
# 调用信号发射函数
sys.exit(app.exec_())
本人也是初学者,如有错误请大佬指出,大佬勿喷,本人也是抱着一颗同情初学者的心情。