PYQT在按钮上调用一个函数,并选择一个文件

时间:2015-09-10 23:49:25

标签: python pyqt

我正在尝试创建一个gui文件转换器。我想选择要转换的文件并使用我的函数转换文件。

 class Window(QtGui.QDialog):
    def __init__(self, parent=None):
    super(Window, self).__init__(parent)

    self.setGeometry(500, 300, 800, 600)

    self.setWindowTitle("Convert XML to CSV!")

# Open a FILE and append to screen
    self.buttonSelect = QtGui.QPushButton('Select Files', self)
    self.buttonSelect.move(350, 100)
    self.buttonSelect.clicked.connect(self.handleButton)


    self.buttonConvert = QtGui.QPushButton('Convert', self)
    self.buttonConvert.move(50,100)
    self.buttonConvert.setFixedSize(155,100)
    self.buttonConvert.clicked.connect(self.convert)

def handleButton(self):
    title = self.buttonSelect.text()
    file_list = QtGui.QFileDialog.getOpenFileNames(self, title)
    for path in file_list:
        print (path)
    self.fileList = file_list
    self.askForfFile.setText(path)

    return file_list

---------------

def convertor(self):
 # process all non-master CSVs
    for fileLocated in os.listdir(directoryPath):
        if fileLocated.endswith(".csv") and 'master' not in fileLocated.lower():

            csvFilename = fileLocated

   etc..

任何帮助都将受到赞赏或指导!是因为标签在浏览器中不起作用而间隔关闭:(

1 个答案:

答案 0 :(得分:0)

我不太确定这是不是你的问题: QFileDialog.getOpenFileNames(self, title)返回一个元组,其中包含所选文件的列表及其完整路径和过滤器resp。如果未设置过滤器,则为空字符串。因此,您必须迭代file_list[0]以获取所选文件。如果您在此处设置过滤器,则用户只能选择与过滤器匹配的文件:

file_list = QtGui.QFileDialog.getOpenFileNames(self, title, None, 'CSV-files: *.csv')   
for path in file_list[0]:
    ....