Python PyQT:选择文件并对其使用函数

Python PyQT:选择文件并对其使用函数,python,pyqt,pyqt4,Python,Pyqt,Pyqt4,我有以下代码: # -*- coding: utf-8-*- import sys, convBB from PyQt4 import QtGui, QtCore class Window(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) layout = QtGui.QVBoxLayout(self) self.resize(300,300)

我有以下代码:

# -*- coding: utf-8-*-
import sys, convBB
from PyQt4 import QtGui, QtCore


class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        layout = QtGui.QVBoxLayout(self)
        self.resize(300,300)
        self.setWindowTitle('Convert_BB_test')
        self.setWindowIcon(QtGui.QIcon('icon.png'))

        self.buttonSelect = QtGui.QPushButton('Select Files', self)
        layout.addWidget(self.buttonSelect)
        self.buttonSelect.clicked.connect(self.handleButton)

        self.buttonConvert = QtGui.QPushButton('Convert', self)
        layout.addWidget(self.buttonConvert)
        self.buttonConvert.clicked.connect(self.convBB.convert(self.handleButton()))

    def handleButton(self):
        title = self.buttonSelect.text()
        file_list = QtGui.QFileDialog.getOpenFileNames(self, title)
        for path in file_list:
            print (path)
        #convBB.convert(list)
        return file_list

#if __name__ == '__main__':


app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
我从
handleButton
函数接收文件列表,并希望在此列表上使用函数
convBB.convert(list)
(从我的
convBB.py
):

self.buttonConvert.clicked.connect(self.convBB.convert(self.handleButton()))
并已:

AttributeError: 'Window' object has no attribute 'convBB'

如何使用选择按钮选择文件,然后使用转换按钮转换文件?

既然您想使用
按钮转换来处理
列表

  • 将行
    self.fileList=[]
    添加到
    窗口的
    初始化中
  • 在返回之前,将行
    self.fileList=file_list
    添加到
    handleButton
    方法中
  • 使用
    self.buttonConvert.clicked.connect(lambda:convBB.convert(self.fileList))
    而不是
    self.buttonConvert.clicked.connect(self.convBB.convert(self.handleButton())

  • 它工作,但它再次调用文件对话框。如何使用select按钮选择文件,然后使用convert按钮转换文件?@nuT707将其正确添加到问题中。这样我就可以解决这个问题了。