如何在cpp文件中阻止qml中的按钮?
Posted
技术标签:
【中文标题】如何在cpp文件中阻止qml中的按钮?【英文标题】:How to block a button in qml in a cpp file? 【发布时间】:2020-06-22 15:28:33 【问题描述】:当调用 cpp 中的函数时,我想阻止 qml 文件中的按钮。
我该怎么做?
【问题讨论】:
阻止是指禁用它,对吗? 是的,我不能再点击这个按钮了。 好的,然后将属性 enable.... 设置为 false... 以我的回答作为指导... 你可以考虑在你的qml中添加一个State,并禁用匹配特定状态的按钮。然后在你的 cpp 中就足以改变对象的状态。这应该是一种最简洁的方法,而不是从逻辑控制 gui 【参考方案1】:你有一个按钮,假设你正在使用 qml 和 c++,你可以在它们之间进行交互,就像在 de doc 中解释的那样
then you can invoke the `setProperty` method
// Using QQmlComponent
QQmlEngine engine;
QQmlComponent component(&engine,
QUrl::fromLocalFile("MyItem.qml"));
QObject *object = component.create();
object->setProperty("width", 500);
...
delete object;
【讨论】:
如何在不更改主对象或创建新对象的情况下做到这一点?【参考方案2】:在您的 c++ 函数中,您可以发出类信号,这在 QML 中也应该可见:
void yourFunction()
emit yourClassInstance.nameOfSignal;
您可以在 QML 中注册您的课程:
engine->rootContext()->setContextProperty(, );
之后,您可以使用 Connection 将信号从您的 c++ 类连接到 js 函数,如下所示:
Connection
target: <Name of your class in qml>
onNameOfSignal:
// Disable button here
【讨论】:
以上是关于如何在cpp文件中阻止qml中的按钮?的主要内容,如果未能解决你的问题,请参考以下文章