问题标签 [qgadget]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为什么我的插槽没有被调用?
我有这堂课:
onTextChanged
当我在编辑控件中键入文本时,永远不会调用该方法。
我错过了什么?
c++ - Qt、枚举和元对象编译器
我有以下用户类:
我也有包含所有全局枚举的基类:
当我编译这段代码时,出现以下错误:undefined reference to "Base::staticMetaObject"
需要做什么?
qt - Object::property ( const char * name ) const 返回空 QVariant
我的班级有枚举属性,我希望使用QObject*
. 调用时QVariant QObject::property ( const char * name ) const
返回值为空QVariant
的枚举类型。
考虑以下代码:
为什么属性返回空的 QVariant 值?字符串包装器属性可以正常工作。
qt - 如何从 QEvent 获取人类可读的事件类型?
我想调试事件处理代码,并想将QEvent::Type
枚举的值转换为人类可读的字符串。QEvent
有一个Q_GADGET
宏,所以大概有办法把它拉下来?
c++ - 无法迭代 Qt 枚举
我正在尝试迭代枚举。
当我逐步完成循环时,我应该能够看到我的枚举,名称在 x 中,值在 y 中。
不幸的是,我只能看到第一个值,计数始终为 1。
我查看了这个问题以找出上面的代码 - 但我确实要求我的枚举,我的问题应该是一个不同的问题。 Qt:meta.enumeratorCount() 没有元数据用于 Q_OBJECT 中的枚举,为什么?
我错过了什么?
c++ - 将 Q_GADGET 作为信号参数从 C++ 传递到 QML
无法在 QML 代码中获取 C++ 对象的属性。对象作为参数传递给信号。
期望在 QML 中,可以提取对象text
的属性。Record
并且值应该是abc
。QML 将对象视为QVariant(Record)
,并将其属性text
视为undefined
。
Record
是一个类似的值类型QPoint
,所以它使用Q_GADGET
声明。
惠普:
cp:
用于记录的 hpp:
用于记录的 cpp:
QML 片断:
主要部分:
日志显示:
c++ - 如何通过 Q_PROPERTY 向 QML 公开指向 Q_GADGET 的指针
我MyGadget
在文件中定义了一个 Q_GADGETmygadget.h
和一个Context
类,它包含一个实例MyGadget
并通过 Q_PROPERTY 向 QML 公开指向它的指针:
Context
在 QML 中创建一个实例main
并将其作为上下文属性公开:
与此一起使用的 QML 文件是
一切都编译得很好,但是运行它时没有显示任何文本并且 QML 发出警告
qrc:/main.qml:9:TypeError:无法读取 null 的属性“值”。
如果我在 QML 文件中删除对qmlRegisterUncreatableType<MyGadget>
in的调用main
和对应的调用,import Test 1.0
则会显示文本“Hello World undefined”。
我让它按预期打印“Hello World 4”的唯一方法是Context::gadget
返回存储对象的副本MyGadget
而不是指向它的指针,或者改为创建MyGadget
一个Q_OBECT
。但是这两个在我的实际应用程序中都不是可行的选项,因为我在这里需要引用语义,但在其他地方我也希望MyGadget
在这个例子中对应的类有值语义。
如何让 QML 读取正确的属性值?
qt - 在 QML 中访问结构内的结构
以前我发布了一个关于如何在 QML 中访问结构的问题,并从一些很棒的人那里得到了完美的答案,现在我需要知道是否有任何方法可以访问QML中的结构内的结构,以下是代码:
//MyNewStruct
//我的结构
c++ - 当 Q_GADGET 结构位于单独的头文件中时,在 QML 中出现“未注册的数据类型”错误
我有一个自定义struct
,我将其用作派生类Q_PROPERTY
中的类型。QMediaPlayer
但这里的代码:
我在一个Label
:
这有点像魅力,但这里有一个转折点:如果我将声明的声明复制并粘贴struct
到宏的单独头文件中(并且显然包含它)Q_DECLARE_METATYPE
,我会收到以下错误:
所以我有两个问题:
- 不太重要的:为什么我需要使用
Q_DECLARE_METATYPE
宏,如果文档说我不需要Q_GADGET
宏,因为它会自动注册类型? - 更重要的是:为什么我不能将声明移到另一个头文件中?我错过了什么?
提前致谢!
编辑:
这可能是相关的:我在 Visual Studio (MSVC v142) 项目中使用 Qt v5.15。(不在 Qt Creator 中。)
qt - Q_GADGET 未知方法返回类型
我有一个班级 MyWindow。这个类调用
我的窗口.h
日期.h
当我在 QML 中调用第一个函数 getFirstMatch 时,它可以工作。但是,第二个函数 gtFirstDate 不起作用,我收到一条错误消息:
qrc:/main.qml:27:错误:未知方法返回类型:日期
我的 QML
有人有想法吗?
谢谢