问题标签 [qobject]
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++ - Qt 插件中的 QObject 工厂(非创建者)
我开始对我的问题感到非常紧张,我会尝试描述我的需求,希望有人理解。想象一下,我有一个项目,它生成一个可执行文件和一些插件(运行时加载的库)。该可执行文件是某种守护进程/服务,它在一开始就寻找合适的插件。所以这些插件应该提供一些抽象的通信层。我查看了 Qt Doc,发现 QPluginLoader 类应该提供从 .so 加载的接口,但接口不能有信号/插槽,必须是纯虚拟的。所以我在想一些会返回基于 QObject 的对象......
!!!请不要害怕,它只有 2 个接口和 2 个实现 :)
我的项目布局和内容:
./Daemon/Interfaces/PluginInterface.h
./Daemon/Interfaces/ProtocolInterface.h
./Daemon/ProtocolHander.cpp(&h) <- 只是插件加载和一些逻辑
./守护进程.pro
./Plugins/Dummy/DummyPluginInterface.h
./Plugins/Dummy/DummyPluginInterface.cpp
./Plugins/Dummy/DummyProtocolInterface.h
./Plugins/Dummy/DummyProtocolInterface.cpp
./Plugins/Dummy/Dummy.pro
我的问题是我收到链接错误或运行时未解析的符号(主要是来自 QObject 的一些想法)或者我的信号无法连接... ProtocolHandler 应该是连接信号/插槽的那个..
谁能告诉我如何使这种方法正确?Qt 示例没有涵盖这样的想法。
谢谢你!
亚当
qt - 为什么不能在 QObject 只是间接基类的类中设置 QObject 父级?
我有一个BatchItem
继承的类QObject
,以及几个继承自的类BatchItem
:
继承自的类的示例BatchItem
:
这是相应的.cpp:
但是当我尝试编译时,出现以下错误:
当然,我认为这是正确的,因为QObject
这只是VideoBatchItem
. 但为什么这是个问题?eg 的情况不也是这样QAbstractScrollArea
,它继承自QFrame
,又继承自QWidget
?它们都以 aQWidget
作为父级,尽管QAbstractScrollArea
只是间接继承自QWidget
. 不幸的是,我在文档和命名小部件类的 .cpp 文件中都找不到答案。
既然我不能通过QObject
父母,还有没有办法使用Qt的父子系统来销毁我派生的批处理项目?
qt - QObject::QObject(QObject parent=0) 在此上下文中是私有的
我有一个叫做网格的类。我想跟踪它的对象。所以当一个新的网格被创建时,我想要一个信号。我已经添加了
并将所有方法设为槽并向 c-tor meshCreated 添加一个信号。但从这里开始,我多年的痛苦开始了。无论如何,标题中的错误开始出现。即使我评论了所有行,即//
在代码中的每一行之前添加,它仍然说相同。我怎样才能解决这个问题?
实际代码
c++ - 自删除 QObjects 的最佳方法
我有两个类 Node 和 NodeContainer:
一个节点可以有父节点,也可以没有。有什么更好的方法来实现 Node 类的销毁:
1)访问父母并从那里摧毁自己
2) 发出一个信号,然后让父级销毁它
c++ - QObject 多重继承和运算符 new
被这个奇怪的问题困住了
为什么以下代码适用于 g++
这无法编译
我的意思是怎么做才能使第二个也好?
PS好吧,我将所有内容放在单独的文件中,并且效果很好。所以我认为这是 Q_OBJECT 宏的问题。
qobject - Qt/C++,QObject::connect() 对当前执行函数的影响?
我总是在我的所有应用程序中使用 QObject::connect() 但是当我的程序当前位于函数内部时,我不清楚它的效果。假设我有以下代码:
我假设当信号发出时,QObject::connect 离开函数“aFunction()”来执行“zzz()”。“aFunction()”中剩余的代码会发生什么
谢谢。
qt - Qt 依赖于 Windows 的哪些部分?
我相信 Qt 使用 GDI(+) 并且您从 QObject 开始。它是否调用 ActiveX 组件、COM 等?
例如,将 WebKit 放入一个表单中,那里发生了什么使用 Windows 点点滴滴进行绘画的事情吗?
我只是一个试图弄清楚 Qt 使用/包装了多少 WINAPI、COM 和 ActiveX 的初学者。
qt - QObject.moveToThread(thread) 如果线程是该对象的子对象
我想用子对象(线程QObject
)创建(对象),并以该对象为父对象(用于在对象存活时保持线程存活)并制作但在这种情况下启动线程的信号不起作用。QThread
object.moveToThread(thread)
简单地:
- 对象拥有线程
- 对象移动到线程
- 信号启动线程不工作
这是怎么回事?
c++ - 使用自定义类作为 Q_PROPERTY
我有两个班,TestA
和TestB
。TestA
延伸QObject
。我已经设置了一些Q_PROPERTY
这样的。
当然,我还创建了合适的 getter 和 setter。这个类工作得很好。
在我的第二堂课中TestB
,我想创建一个Q_PROPERTY
是 a 的TestA
,所以我在testb.h
.
而这在testb.cpp
.
当我尝试编译它时,我收到以下错误消息。
有人能告诉我我需要做什么来解决这个问题吗?
qt - 基于 QObject 的类与自身有一个排队连接
我正在研究我正在研究的一些源代码。我发现有人编码的一个特殊语句。源代码是一个带有 QML GUI 并使用 QT 4.7.x 的 GUI 应用程序。
下面的代码片段属于核心应用程序逻辑。
奇怪的是对象通过队列连接连接到自身,这本质上意味着对象可能同时“生活”在不同的线程中?
乍一看,这对我没有任何意义。谁能想到为什么这种联系是合理的或需要的?这甚至会起作用吗?