Python 使用不同类的函数连接信号

Python 使用不同类的函数连接信号,python,qt,pyside,Python,Qt,Pyside,您好,我正在制作一个程序,我正在使用stackedLayout显示程序中的不同“区域”。我想使用类来“分离”与某些区域相关的函数。例如,区域1有一个开始按钮和一个清除按钮,当按下开始按钮时,它运行程序,当按下清除按钮时,该区域被清除。当我在主类中定义要启动和清除的函数时,按钮工作正常,但是当我从另一个类调用它们时,什么也没有发生 main.py 有人能解释一下为什么我单击按钮时没有打印任何内容吗?您没有保留对您的hello实例的引用。因此,它是在\uuuuu init\uuuu结束后垃圾收集的,

您好,我正在制作一个程序,我正在使用stackedLayout显示程序中的不同“区域”。我想使用类来“分离”与某些区域相关的函数。例如,区域1有一个开始按钮和一个清除按钮,当按下开始按钮时,它运行程序,当按下清除按钮时,该区域被清除。当我在主类中定义要启动和清除的函数时,按钮工作正常,但是当我从另一个类调用它们时,什么也没有发生

main.py


有人能解释一下为什么我单击按钮时没有打印任何内容吗?

您没有保留对您的
hello
实例的引用。因此,它是在
\uuuuu init\uuuu
结束后垃圾收集的,当您按下按钮时不可用

尝试将其存储为实例属性(
self.run
),而不是局部变量(
run
):


你从另一个班怎么称呼他们?你是在正确的
实例上呼叫他们吗?
?对不起,我是新手。“正确的实例”是什么意思?
class Program(QtGui.QMainWindow, Interface.Ui_MainWindow):
    def __init__(self, parent=None):
        super(Program, self).__init__(parent)
        self.setupUi(self)

        run = hello()
        self.startButton.clicked.connect(run.hello1)
        self.clearButton.clicked.connect(run.hello2)

class hello(object):
    def hello1(self):
        print "start button"

    def hello2(self):
        print "stop button"
class Program(QtGui.QMainWindow, Interface.Ui_MainWindow):
    def __init__(self, parent=None):
        super(Program, self).__init__(parent)
        self.setupUi(self)

        self.run = hello()
        self.startButton.clicked.connect(self.run.hello1)
        self.clearButton.clicked.connect(self.run.hello2)

class hello(object):
    def hello1(self):
        print "start button"

    def hello2(self):
        print "stop button"