1

スロット関数からのreturnステートメントを使用して、別の「ラムダ」スロットに入力を提供できますか?

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、接続が成功したか失敗したかを示す単なるブール値です。スロットの戻り値とは関係ありません。

サンプルコードから、1つのステップでユーザーからいくつかのファイル名を取得し、別の2番目のステップでそれらを処理したいようです。

これを行うには、ユーザーが処理ステップを開始することを決定するまで、ファイル名をどこかに保持する必要があります。これを行う一般的な方法の1つは、選択したファイル名をリストウィジェットまたは行編集のグループに表示して、後で取得できるようにすることです。または、ファイル名を内部リスト(つまり、クラスインスタンスのプライベート属性)に追加するだけでもかまいません。

于 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 に答える