QML のボタンの clicked() スロットにフックして、C++ コードから別の QML ページを起動しようとしていますが、機能していません。
Button {
objectName: btnLogin
text: qsTr("Login")
id: btnLogin
}
そして、C++
QObject *newButton = root->findChild<QObject*>("btnLogin");
QObject::connect(newButton, SIGNAL(clicked()), this, SLOT(loginClick()));
私の hpp ファイルのスロット:
public slots:
void loginClick();
そして私のクリックした方法:
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");
デバッガーをチェックすると null です。私は C++ に非常に慣れておらず、Qt にはまったく慣れていません。優しくしてください :) 何が間違っているのでしょうか?