无法在我的程序中找到错误原因

时间:2014-01-26 14:00:50

标签: python python-2.7 pyqt4

我遇到这个问题,我的执行一直在调用错误,导致我无法执行我的程序。 我的错误信息是''mainWindow'对象没有属性'updateMenu'

但是我试图在前面的部分中定义它,但仍然无法让它工作。

有人可以告诉我哪里错了吗?

from PyQt4.QtCore import *
from PyQt4.QtGui import *

class mainWindow(QDialog):
    def __init__(self, parent=None):
        super(mainWindow, self).__init__(parent)
        self.updateMenu()

        self.setShowLbl = QLabel('Show Name')
        self.setShowTxt = QLineEdit()
        self.setShowBtn = QPushButton('Set Show')

        gridLayout01 = QGridLayout()
        gridLayout01.addWidget(self.setShowLbl,0,0)
        gridLayout01.addWidget(self.setShowTxt,0,1)
        gridLayout01.addWidget(self.setShowBtn,0,2)

        self.setLayout(gridLayout01)
        self.setWindowTitle("Set Shot")

        self.connect(self.setShowBtn, SIGNAL('clicked()'), self.updateMenu)

        def updateMenu(self):
            print('working')

app = QApplication(sys.argv)
form = mainWindow()
form.show()
app.exec_()

1 个答案:

答案 0 :(得分:2)

您的错误表明updateMenu()对象上没有mainWindow方法,如果您的代码完全,如问题所示,@ jon-clements是对的,你应该在课堂上排队updateMenu()

from PyQt4.QtCore import *
from PyQt4.QtGui import *

class mainWindow(QDialog):
    def __init__(self, parent=None):
        super(mainWindow, self).__init__(parent)
        self.updateMenu()

        self.setShowLbl = QLabel('Show Name')
        self.setShowTxt = QLineEdit()
        self.setShowBtn = QPushButton('Set Show')

        gridLayout01 = QGridLayout()
        gridLayout01.addWidget(self.setShowLbl,0,0)
        gridLayout01.addWidget(self.setShowTxt,0,1)
        gridLayout01.addWidget(self.setShowBtn,0,2)

        self.setLayout(gridLayout01)
        self.setWindowTitle("Set Shot")

        self.setShowBtn.clicked.connect(self.updateMenu)

    def updateMenu(self):
        print('working')

app = QApplication(sys.argv)
form = mainWindow()
form.show()
app.exec_()

我没有pyqt4了,所以我无法按原样测试您的代码,但它看起来很好并且对我有用。