我目前正在为我的PyQt GUI实现一个模型-视图体系结构。下面是我的代码的一个简单但有代表性的版本。在
class Model(QtGui.QWidget):
def __init__(self):
super(Model, self).__init__()
self.openDir = '/some/file/dir/'
def openFile(self):
openFileName = QtGui.QFileDialog.getOpenFileName(None, "Open File",self.openDir,"AllFiles(*.*)")
openFile = open(openFileName, 'r')
...
class View(QtGui.QWidget):
def__init__(self):
super(View, self).__init__()
...
self.button = QtGui.QPushButton("Open")
...
self.button.clicked.connect(Model().openFile)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
mainWindow = View()
mainWindow.show()
sys.exit(app.exec_())
所以当我点击“open”按钮时,我想调用Model
类openFile
方法,但当我点击它时,它会进入Model.__init__
,但实际上它从来没有进入openFile
方法。我要修什么?在
编辑1:修正了所有的错误。在
编辑2:对于那些面临类似问题的人,这里是Fred S提供的解决方案和修复的代码。在
^{pr2}$
我的机器上没有PyQt4,但我有PySide。下面是我运行代码时看到的:
1)
super(Model, self).__init__(parent)
崩溃。”未定义“父项”。在2)
open = open(openFileName, 'r')
非常糟糕。你在重新定义一个内置的。在3)
self.loadDir
似乎不存在。在4)至于你的问题,如果我改变
成为:
^{pr2}$那么问题似乎就解决了。但这是在PySide,所以可能不是在PyQt4中。祝你好运。在
相关问题 更多 >
编程相关推荐