- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道,可以定义一个具有自定义属性的 QObject 并在 QML 环境中公开该对象。但这样一来,对于每个新属性,我都需要重新编译 C++ 代码。
是否有可能进行从 C++/Qt 到 QML 对象的动态绑定(bind)?像这样的东西:
//C++ code:
updateProperty("myQmlObject.any_property", "Hello World");
谢谢!
已解决:
_view->rootContext()->setContextProperty( "cppmessage" , "Hello from C++" );
WHERE:view 是一个 QDeclarativeView,cppmessage 在 QML 中使用,无需事先声明,如:“text: cppmessage”
此链接对于查找解决方案很有用:http://xizhizhu.blogspot.com/2010/10/hybrid-application-using-qml-and-qt-c.html
最佳答案
是的,这是可以做到的。 Link
// MyItem.qml
import QtQuick 1.0
Item {
property int someNumber: 100
}
//C++
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine, "MyItem.qml");
QObject *object = component.create();
qDebug() << "Property value:" << QDeclarativeProperty::read(object,"someNumber").toInt();
QDeclarativeProperty::write(object, "someNumber", 5000);
qDebug() << "Property value:" << object->property("someNumber").toInt();
object->setProperty("someNumber", 100);
编辑:1此处列出了@Valentin 建议的另一种方法 link
关于qt4 - 在没有 Q_PROPERTY 定义的情况下从 C++ 访问 QML 对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6033515/
在此: Q_PROPERTY(QString datastring READ showdata() NOTIFY datastringChanged) 是datastringChanged用于在 QM
我正在使用 Q_PROPERTY s 在我的项目中,我试图找出向这些属性添加一些属性的最佳方法( like min and max value )。 看起来没有任何地方可以在属性本身上存储这些属性..
我的目标是实现更多的代码重用,同时保持冗长。 考虑以下示例代码: // qdot@defixio /tmp/test4 $ cat test.h #include class Foo : publi
我正在将 Q_PROPERTY 与 QML 一起使用。我的代码是: using namespace std; typedef QString lyricsDownloaderString; // th
考虑这些类: Class A : public QObject { ... Q_PROPERTY(int value READ value WRITE setValue NOTIFY
考虑这些类: Class A : public QObject { ... Q_PROPERTY(int value READ value WRITE setValue NOTIFY
我正在尝试将抽象类的实例用作我的一个扩展 QQuickItems 中的属性。我有一个基础类(class),像这样: class VizFactory : public QQuickItem {
我有一个 Configuration,其中包含一些关于文件位置的基本信息,例如下载、安装、图片、音乐、文档等位置。这些目前使用 Q_PROPERTY 暴露给 QML。它们都有自己的访问器: Q_PRO
我是 QT 属性系统的新手,我想了解为什么如果我以一种方式注册和使用属性,它可以工作,但以另一种方式失败。 我有两个类( A 和 B )都继承自 QObject .类 B包含类 A 的几个实例我想注册
我有两个类,TestA 和 TestB。 TestA 扩展了 QObject。我用一些 Q_PROPERTY 设置了它。 Q_PROPERTY(QString a_string READ getStr
我是 Qt 和 C++ 的新手,但长期使用 Delphi 程序员。 我有一个简单的类,我正在尝试将属性添加到: class Rectangle { Q_PROPERTY(int width R
我有这个属性: Q_PROPERTY(int _a READ a WRITE setA NOTIFY aChanged) 我只知道属性的名称 _a。我想获取方法 setA 的索引。 最佳答案 查看 Q
http://doc.qt.io/qt-5/qtqml-cppintegration-exposecppattributes.html class Message : public QObject {
如何将 Q_PROPERTY 宏放入另一个辅助宏中? #define SimpleAllinOne(member, _type) \ public: \ void Set##member(_t
我习惯用参数编写我的“propertyChanged”signal,这样接收端就不需要调用Q_PROPERTY的READ 功能显式。 我这样做是为了清楚起见,并假设在 QML 数据绑定(bind)情况
TL;DR:如何为与使用 Q_PROPERTY 声明的属性同名的访问器生成 doxygen 文档? Qt 的 property system使得在给定属性上使用 Qt 的元对象系统成为可能: // e
我真的想不通为什么我需要它,一直在阅读: http://doc.qt.io/qt-4.8/properties.html#requirements-for-declaring-properties 还
众所周知,继承的信号不能用作Q_PROPERTY NOTIFYer ( https://bugreports.qt.io/browse/QTBUG-7684 )。作为一种解决方法,我在派生类中使用了一
我有一个非常简单的类,它有两个属性;键和值: KeyValue.h: class KeyValue : public QObject { Q_OBJECT Q_PROPERTY(QString
问题 我正在制作一个使用 Q_OBJECT 和 Q_PROPERTY 从脚本访问一些对象的项目。我有两个问题: 使使用前向声明的类可编写脚本 返回一个属性作为指针 说明 1. 为什么要提前申报? 类
我是一名优秀的程序员,十分优秀!