Здравствуйте!
Вчера задавала вопрос о передаче данных из Python в QML https://itfy.org/threads/obmen-dannymi-mezhdu-python-i-qml.2381/
Теперь интересует вопрос о передаче денных в обратном направлении:
Есть форма с текстовым полем "Введите имя сотрудника"

Необходимо, чтобы после нажатия на кнопку "Click on me" значение из поля "Введите имя сотрудника" передалось в Python в переменную a, чтобы сработала команда print(a)
Как можно решить эту задачу?
Код Python:
Код QML:
Вчера задавала вопрос о передаче данных из Python в QML https://itfy.org/threads/obmen-dannymi-mezhdu-python-i-qml.2381/
Теперь интересует вопрос о передаче денных в обратном направлении:
Есть форма с текстовым полем "Введите имя сотрудника"

Необходимо, чтобы после нажатия на кнопку "Click on me" значение из поля "Введите имя сотрудника" передалось в Python в переменную a, чтобы сработала команда print(a)
Как можно решить эту задачу?
Код Python:
Python:
import sys
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtCore import QObject,pyqtSignal,pyqtSlot
class Calculator(QObject):
def __init__(self):
QObject.__init__(self)
sumResult=pyqtSignal(int,arguments=['sum'])
@pyqtSlot(int)
def sum(self,arg1):
self.sumResult.emit(arg1)
if __name__ == '__main__':
app = QGuiApplication(sys.argv)
engine=QQmlApplicationEngine()
engine.load('main.qml')
engine.quit.connect(app.quit)
sys.exit(app.exec_())
Код QML:
Код:
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
Window {
width: 640
height: 480
visible: true
title: qsTr("QML test. v1")
Rectangle {
id: mainRect
anchors.centerIn: parent
width: 400
height: 200
border.color: "LightGray"
ColumnLayout {
anchors.fill: parent
spacing: 10
RowLayout {
//anchors.fill: parent
Layout.alignment: Qt.AlignCenter
//Layout.preferredWidth: 200
Layout.preferredHeight: 20
spacing: 6
Button {
id: buttonClickMe
Layout.leftMargin: 10
text: "Click on me"
onClicked: {
/// Если в полне что-то введено, то
if (txtFild.text.length != 0 ) {
labelPersonFIO.text = txtFild.text;
console.log("text: ", txtFild.text);
}
else {
labelPersonFIO.text = "Сотрудник не выбран";
}
}
}
TextField {
id: txtFild
placeholderText: "Введите имя сотрудника"
font.pixelSize: 16
}
}
Item {
Layout.alignment: Qt.AlignCenter | Qt.AlignTop
Layout.preferredWidth: 300
Layout.preferredHeight: 40
Label {
id: labelPersonFIO
anchors.centerIn: parent
font.pixelSize: 20
color: "Gray"
text: "Сотрудник не выбран"
}
}
}
}
}