姓名' xxx'没有定义

时间:2016-03-20 14:22:37

标签: python pyqt4

为什么这两个功能不起作用?

#!/bin/sh
php /home/stjc/app/artisan queue:listen --timeout=60 --tries=5 &

我有这个错误:

class Window(QtGui.QMainWindow):

 def __init__(self):
    super(Window, self).__init__()
    self.setGeometry(500, 150, 500, 600)
    self.home()

 def home(self):

    btn_run = QtGui.QPushButton("Run", self)
    btn_run.clicked.connect(self.run)
    btn_run.resize(120, 40)
    btn_run.move(220, 540)

    self.show()

 def view_splash(arg1):
    label = QLabel("<font color=red size=10<b>" + n[arg1] + "</b></font>")
    label.setWindowFlags(Qt.SplashScreen | Qt.WindowStaysOnTopHint)
    label.show()
    QtCore.QTimer.singleShot(10000, label.hide)

 def run(self):
    for i in range(len(lines)):
        n = random.choice(words)
        view_splash(0)
        view_splash(1)
        time.sleep(600)

我做错了什么? 这应该是什么样的?

1 个答案:

答案 0 :(得分:1)

在python中,必须使用self来访问同一对象的其他方法和属性。当你只是调用view_splash时,python会查找函数定义,但不会查看Window的方法。通过明确地为view_splash添加self.前缀,python会知道您需要方法Window.view_splash,它应该按预期工作。

因此,对于您的特定代码,您需要将run方法更新为以下内容:

def run(self):
    for i in range(len(lines)):
        n = random.choice(words)
        self.view_splash(0)
        self.view_splash(1)
        time.sleep(600)

我假设该类的其他代码之外,将lineswords定义为Window.run可以访问的全局变量。< / p>