0

Python での GUI アプリケーション開発は初めてです。PySide を使用して GUI を開発しています。2 つのスレッド間でパラメーターを渡す方法について助けが必要です。カスタム シグナルとスロット メカニズムの使用方法を知っています。

をmylistから myに送信したい。second threadmain thread

correction_valuesPython 疑似コード ( mysecond threadから にリストを送信したいmain thread):

---main thread----
self.connect(self.Tests_Start, SIGNAL("Test1_Passed()"), self.StartThread_Test1_Passed, Qt.DirectConnection)
def StartThread_Test1_Passed(self, values):
   for value in values:
      self.textEdit1.insertPlainText(value)
      self.textEdit1.insertPlainText(',')

-

---second thread----
def Tests()
   self.emit(SIGNAL("Test1_Passed()"), correction_values) # Is this way possible?
4

1 に答える 1

3

新しいスタイルのエミットとシグナルを使用できます。オールドスタイルより簡単です。シグナルオブジェクトを作成するだけです。

class QCustomWidget (QtCore.QWidget):

    # create a new signal name 'Test1_Passed' and argument 'object' (Anything)
    Test1_Passed = QtCore.Signal(object)

    def __init__ (self):
        .
        .

次に、'connect' を使用して信号を接続します。

self.Test1_Passed.connect(self.StartThread_Test1_Passed)

関数がパス変数であることを確認してください。

@QtCore.Slot(object)
def StartThread_Test1_Passed (self, values):
    .
    .

最後に、'emit' シグナルを使用します。

correction_values = ['1', '2', '3'] # List data-type
self.Test1_Passed.emit(correction_values)

また、このドキュメントを読んで詳細を確認することもできます。

于 2014-09-15T08:51:05.863 に答える