我正在尝试为我在这里的一些人的帮助下编写的小程序制作一个 GUI,无论如何,我在 PyQt 中制作了 GUI,它看起来不错。我添加了一个名为 dirButton 的按钮,上面写着“选择目录”
self.dirButton = QtGui.QPushButton(self.buttonWidget)
self.dirButton.setGeometry(QtCore.QRect(0, 0, 91, 61))
self.dirButton.setObjectName(_fromUtf8("dirButton"))
self.dirButton.clicked.connect(self.browse)
在最后一行,当我点击它时,我让它调用 self.browse,它是:
def browse(self):
filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
fname = open(filename)
data = fname.read()
self.textEdit.setText(data)
fname.close()
但是,这是我得到的错误:
Traceback (most recent call last):
File "C:\Users\Kevin\Desktop\python-tumblr-0.1\antearaGUI.py", line 88, in browse
filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', '.')
TypeError: QFileDialog.getOpenFileName(QWidget parent=None, QString caption=QString(), QString directory=QString(), QString filter=QString(), QString selectedFilter=None, QFileDialog.Options options=0): argument 1 has unexpected type 'Ui_mainWindow'
所以,ui_mainWindow 是我所有的 GUI 按钮和 GUI 本身存储的类。
class Ui_mainWindow(object):
我不明白为什么我会收到错误消息,有人有任何想法吗?
这是整个 GUI 的 pastebin 链接:http: //pastebin.com/BWCcXxUW
原文由 Anteara 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我了解,您正在使用
Ui_mainWindow
从.ui
文件生成。如您所见Ui_mainWindow
只是包含小部件的 python 类。getOpenFileName
接收QWidget
实例作为第一个参数。所以你需要QWidget
或QMainWindow
并在该类中定义方法。代码将如下所示:
或者,您可以将
ui
存储为实例属性:并通过
self.ui
您的控件,例如:self.ui.textEdit.setText(data)
考虑阅读有关
pyuic
实例使用 PyQt 的教程(第 1 节)