我遇到这个问题,我的执行一直在调用错误,导致我无法执行我的程序。 我的错误信息是''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_()
答案 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了,所以我无法按原样测试您的代码,但它看起来很好并且对我有用。