Pyside2 信号槽 2d 数组签名定义,等效于列表列表
Pyside2 signal slots 2d array signature definition, equivalent for list of list
我正在尝试将发出二维数组的 signal
连接到处理该列表列表的 slot
。
我在 slot
定义中使用了 @Slot(list)
并且 SIGNAL("slot_method(QList<QList<QString>>)")
但这似乎不起作用。
我想知道 Qt
术语中的列表列表的正确转换是什么。
Python 中没有二维列表,只有列表,因此您必须使用签名 list
。
示例:
from PySide2 import QtCore
class Sender(QtCore.QObject):
signal = QtCore.Signal(list)
def on_test(self):
l = [["a", "b", "c", "d"], ["A", "B", "C", "D"]]
self.signal.emit(l)
class Receiver(QtCore.QObject):
@QtCore.Slot(list)
def on_receiver(self, l):
print(l)
QtCore.QCoreApplication.quit()
if __name__ == '__main__':
import sys
app = QtCore.QCoreApplication(sys.argv)
sender = Sender()
receiver = Receiver()
sender.signal.connect(receiver.on_receiver)
QtCore.QTimer.singleShot(1000, sender.on_test)
sys.exit(app.exec_())
我正在尝试将发出二维数组的 signal
连接到处理该列表列表的 slot
。
我在 slot
定义中使用了 @Slot(list)
并且 SIGNAL("slot_method(QList<QList<QString>>)")
但这似乎不起作用。
我想知道 Qt
术语中的列表列表的正确转换是什么。
Python 中没有二维列表,只有列表,因此您必须使用签名 list
。
示例:
from PySide2 import QtCore
class Sender(QtCore.QObject):
signal = QtCore.Signal(list)
def on_test(self):
l = [["a", "b", "c", "d"], ["A", "B", "C", "D"]]
self.signal.emit(l)
class Receiver(QtCore.QObject):
@QtCore.Slot(list)
def on_receiver(self, l):
print(l)
QtCore.QCoreApplication.quit()
if __name__ == '__main__':
import sys
app = QtCore.QCoreApplication(sys.argv)
sender = Sender()
receiver = Receiver()
sender.signal.connect(receiver.on_receiver)
QtCore.QTimer.singleShot(1000, sender.on_test)
sys.exit(app.exec_())