Python PyQt将文件名传递给公共函数
我可以使用slot函数的return语句向不同的“lambda”slot提供输入吗 我知道沿着下面的路线的一些东西不起作用——因为X和Y似乎只是布尔值: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
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——我没有想过在一个列表小部件中存储这样的文件名。现在我将尝试从列表小部件中提取文本,因为这已经克服了我对全局变量的厌恶。