Ich versuche, eine andere QML-Seite aus meinem C++ - Code durch Klicken in den geklickt() -Slot einer Schaltfläche in meiner QML, aber es funktioniert nicht.Wie reagiere ich auf eine QML-Schaltfläche klicken in C++
Button {
objectName: btnLogin
text: qsTr("Login")
id: btnLogin
}
und die C++
QObject *newButton = root->findChild<QObject*>("btnLogin");
QObject::connect(newButton, SIGNAL(clicked()), this, SLOT(loginClick()));
Die Schlitze in meiner HPP-Datei:
public slots:
void loginClick();
Und mein geklickt Methode:
void GConnectBB::loginClick() {
int i = 0;
Button *newButton = root->findChild<Button*>("btnLogin");
if (newButton)
newButton->setProperty("text", "New button text");
}
QObject *newButton = root->findChild<QObject*>("btnLogin");
ist null, wenn ich das überprüfen durch Debugger. Ich bin extrem rostig mit C++ und völlig neu in Qt, bitte sei sanft :) Was könnte ich falsch machen?
Ist das nicht eine schlechte Praxis (Zugang UI-Elemente von C++) in Betracht gezogen? Ich habe versucht, selbst zu lernen, wie ich meine C++ - Objekt-Methode mit einem qml-Objekt-Signal verbinden kann ... –
@JoaoMilasch Ja, das ist es. Dies war nur ein Beispiel. Das primäre Ziel war, dass der C++ Code auf den Button-Klick reagiert. – Tjaart