【发布时间】:2019-08-23 02:43:12
【问题描述】:
我有一些使用 Qt/C++ 的经验,现在我想切换到 PySide2 + QML。我想将 ui 信号(例如单击按钮)连接到 python 插槽
我见过很多例子,但它们都不同,我猜 PyQt/PySide 现在变化很快
您能否提供将 QML 信号连接到 PySide Slot 的现代且简洁的方法?例如单击按钮以在 python 控制台中打印一些文本。这是我的简单代码示例
main.py
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
def test_slot(string): # pseudo slot
print(string)
if __name__ == "__main__":
app = QGuiApplication()
engine = QQmlApplicationEngine('main.qml')
exit(app.exec_())
main.qml
import QtQuick 2.13
import QtQuick.Controls 2.13
ApplicationWindow {
visible: true
Button {
anchors.centerIn: parent
text: "Example"
onClicked: test_slot("Test") //pseudo signal
}
}
【问题讨论】: