1

我可以使用槽函数的返回语句为不同的“lambda”槽提供输入吗?

我知道以下内容不起作用 - 因为 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

我确信这样的事情是可能的,而且我的脑部严重冻结。

非常感谢您的帮助

4

2 回答 2

1

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

从您的示例代码看来,您希望在一步中从用户那里获取一些文件名,然后在单独的第二步中处理它们。

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

于 2012-07-31T23:47:55.333 回答
0

X = QtCore.QObject.connect(self.actionOpenX, OtCore.SIGNAL("triggered()", self.file_dialog)总是返回一个布尔值,所以为什么不尝试使用全局变量global x并在 file_dialog 中设置 x 值?

于 2012-07-31T19:42:29.553 回答