5
我試圖通過掛鉤到我的QML中按鈕的clicked()槽中來啓動與我的C++代碼不同的QML頁面,但它不起作用。如何對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");
爲空當我檢查過調試器。我對C++非常生疏,對Qt也是全新的,請溫柔:)我會做什麼錯?
是不是這被認爲是不好的做法(從C++訪問UI元素)?我一直在努力學習如何將我的C++對象方法連接到一個qml對象信號... –
@JaoaoMilasch是的。這只是一個例子。主要目標是讓C++代碼響應按鈕點擊。 – Tjaart