【发布时间】:2014-08-12 16:37:09
【问题描述】:
我想实现一个按钮,允许我从各种输入文件中进行选择并上传我选择的文件。我在网上搜索并整理了一些代码,问题是,我不完全了解如何在插槽中实现 fileDialogue。您在插槽“on_click”中看到的代码直接取自在线示例,它并没有真正起作用。主要问题是 getOpenFileName 需要参数之一是“self”,我不确定我是否知道如何在 PyQt 插槽中使用“self”。感谢您的帮助
import sys
from PyQt4 import QtGui,QtCore
from PyQt4.QtCore import pyqtSlot
from PyQt4.QtGui import *
@pyqtSlot()
def on_click():
filename = QtGui.QFileDialog.getOpenFileName(self,'Open File', '.')
fname = open(filename)
data = fname.read()
self.textEdit.setText(data)
fname.close()
class MainWindow(QtGui.QWidget):
def __init__(self): #try removing parent=None
QtGui.QWidget.__init__(self)
self.setGeometry(650,300,600,600)
self.setWindowTitle("Data Viewer")
quitB = QtGui.QPushButton("QUIT",self)
uploadB = QtGui.QPushButton("UPLOAD",self)
hbox = QHBoxLayout()
self.connect(quitB,QtCore.SIGNAL('clicked()'),QtGui.qApp,QtCore.SLOT('quit()'))
uploadB.clicked.connect(on_click(self))
#add buttons to horizontal box layout
hbox.addWidget(quitB)
hbox.addWidget(uploadB)
self.setLayout(hbox)
def main():
app = QtGui.QApplication(sys.argv)
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
【问题讨论】:
标签: pyqt4 qt-signals