【发布时间】:2018-07-29 15:36:09
【问题描述】:
我正在尝试使用 PySide2 复制以下示例。
https://evileg.com/en/post/242/
但由于 PySide2 不支持向 QML 发出带有命名参数的信号,我不知道如何使用 PySide2 来做到这一点?
这是我的代码
main.py
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import QObject, Signal, Slot, Property
class Calculator(QObject):
def __init__(self):
QObject.__init__(self)
sumResult = Signal(int)
subResult = Signal(int)
@Slot(int, int)
def sum(self, arg1, arg2):
self.sumResult.emit(arg1 + arg2)
@Slot(int, int)
def sub(self, arg1, arg2):
self.subResult.emit(arg1 - arg2)
if __name__ == "__main__":
import sys
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
calculator = Calculator()
engine.rootContext().setContextProperty("calculator", calculator)
engine.load("/code/QML/calc.qml")
engine.quit.connect(app.quit)
sys.exit(app.exec_())
【问题讨论】: