Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt将文件名传递给公共函数_Python_File_Pyqt_Slots - Fatal编程技术网

Python PyQt将文件名传递给公共函数

Python PyQt将文件名传递给公共函数,python,file,pyqt,slots,Python,File,Pyqt,Slots,我可以使用slot函数的return语句向不同的“lambda”slot提供输入吗 我知道沿着下面的路线的一些东西不起作用——因为X和Y似乎只是布尔值: class : mainwindow(QtGui.QMainWindow, Ui_test): def __init__ (self, parent = None): super(mainwindow,self).__init__(parent) self.setupUi(self) X

我可以使用slot函数的return语句向不同的“lambda”slot提供输入吗

我知道沿着下面的路线的一些东西不起作用——因为X和Y似乎只是布尔值:

class : mainwindow(QtGui.QMainWindow, Ui_test):
    def __init__ (self, parent = None):
        super(mainwindow,self).__init__(parent)
        self.setupUi(self)
        X = QtCore.QObject.connect(self.actionOpenX, OtCore.SIGNAL("triggered()", self.file_dialog)
        Y = QtCore.QObject.connect(self.actionOpenY, OtCore.SIGNAL("triggered()", self.file_dialog)
        QtCore.QObject.connect(self.actionProcess, QtCore.SIGNAL("triggered()", lambda : self.updateUi(X,Y))

def update_Ui(self, X, Y):
    for line in X:
        for line in Y:
            "do something"

def file_dialog(self)
    filedlg = QtGui.QFileDialog(self)
    self.filename = filedlg.getOpenFileName()
return self.filename
我确信这样的事情是可能的,我有严重的大脑冻结


非常感谢您提供的任何帮助

X=QtCore.QObject.connect(self.actionOpenX,OtCore.SIGNAL(“triggered()”,self.file_dialog)
总是返回一个bool值,那么为什么不尝试使用全局变量(如
global X
)并在文件对话框中设置X值呢?

X=QtCore.QObject.connect(self.actionOpenX,OtCore.SIGNAL(“triggered()”,self.file_对话框)
返回值始终是布尔值,那么为什么不尝试使用全局变量,如
全局x
,并在文件对话框中设置x值?

QObject.connect的返回值只是一个布尔值,指示连接是否成功。它与插槽的返回值无关

从示例代码中可以看出,您希望在一个步骤中从用户处获取一些文件名,然后在另一个步骤中处理它们


为了做到这一点,文件名需要保留在某个地方,直到用户决定开始处理步骤。一种常见的方法是在列表小部件或一组行编辑中显示所选文件名,以便以后检索。或者,文件名可以简单地附加到内部列表中(即类实例的私有属性)。

QObject.connect的返回值仅是一个布尔值,指示连接是否成功。它与插槽的返回值无关

从示例代码中可以看出,您希望在一个步骤中从用户处获取一些文件名,然后在另一个步骤中处理它们


为了做到这一点,文件名需要保留在某个地方,直到用户决定开始处理步骤。一种常见的方法是在列表小部件或一组行编辑中显示所选文件名,以便以后检索。或者,文件名可以简单地附加到内部列表中(即类实例的私有属性).

我曾经考虑过这个阿卡亚人,事实上这就是我当前的实现工作方式,但它不知何故不雅观,而且不适合——我通常不喜欢全局变量。如果可能的话,我希望有一个“更好”的解决方法。我曾经考虑过这个阿卡亚人,事实上这就是我当前的实现工作方式,但事实确实如此不知怎么的不雅观,坐不好-我通常不喜欢全局变量。我希望有一个“更好”的解决办法,如果可能的话。我没有想过在列表小部件中像那样存储文件名。我现在将尝试从列表小部件中提取文本,因为这已经克服了我对全局变量的厌恶。谢谢ekhumoro——我没有想过在一个列表小部件中存储这样的文件名。现在我将尝试从列表小部件中提取文本,因为这已经克服了我对全局变量的厌恶。