Tja*_*art 5 qt qml blackberry-10 blackberry-cascades
我试图通过挂钩到我的QML中按钮的clicked()插槽来从我的C++代码启动一个不同的QML页面,但它不起作用.
Button {
objectName: btnLogin
text: qsTr("Login")
id: btnLogin
}
Run Code Online (Sandbox Code Playgroud)
和c ++
QObject *newButton = root->findChild<QObject*>("btnLogin");
QObject::connect(newButton, SIGNAL(clicked()), this, SLOT(loginClick()));
Run Code Online (Sandbox Code Playgroud)
我的hpp文件中的插槽:
public slots:
void loginClick();
Run Code Online (Sandbox Code Playgroud)
我点击的方法:
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");
Run Code Online (Sandbox Code Playgroud)
检查调试器时为null.我对C++非常生疏,对Qt来说是全新的,请温柔:)我能做错什么?
您应该用引号括住对象名称:
Button {
objectName: "btnLogin"
...
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6814 次 |
| 最近记录: |