Sto provando a lanciare una pagina QML diversa dal mio codice C++ agganciando lo slot cliccato() di un pulsante nel mio QML ma non funziona.Come reagire a un pulsante QML fare clic su C++
Button {
objectName: btnLogin
text: qsTr("Login")
id: btnLogin
}
E il C++
QObject *newButton = root->findChild<QObject*>("btnLogin");
QObject::connect(newButton, SIGNAL(clicked()), this, SLOT(loginClick()));
Gli slot a mio file hpp:
public slots:
void loginClick();
E il mio metodo cliccato:
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");
è nullo quando controllo attraverso la debugger. Sono estremamente arrugginito con C++ e completamente nuovo a Qt, per favore sii gentile :) Cosa potrei fare di sbagliato?
Is not questo considerata una cattiva pratica (elementi dell'interfaccia utente di accesso da C++)? Ho cercato di imparare come collegare il mio metodo dell'oggetto C++ a un segnale di oggetto qml ... –
@JoaoMilasch sì, lo è. Questo era solo un esempio. L'obiettivo principale era ottenere che il codice C++ reagisse al clic del pulsante. – Tjaart