c++ - 使用 Boost.Signal 代替 Qt 的信号?没有moc吗?

标签 c++ qt boost moc

我知道它们可以一起使用,但我想知道是否可以在程序的 Qt 部分(小部件等)中用 Boost.Signal 替换 Qt 的信号和插槽机制。

有人试过吗?有什么陷阱吗?

假设我不使用任何其他 MOC 功能并用 boost.signal 替换信号/插槽,是否可以完全不使用 moc?

最佳答案

我考虑将它用于我的一个项目。根据项目,可能会困扰您的一个方面是使用 Qt Designer . Qt-Designer 在下面为它的 GUI 连接创建信号槽。所以,如果你碰巧使用了设计器,你最终会得到同时具有 signals-slotsboost::signals 的项目。将它们一起使用存在一些问题 f.e.见 this博客。尽管他们可以一起工作,但我会避免混合这两种方法。

但我面临的最大问题是 boost::signals 不是线程安全的,而 Qt 的 signal-slot 是!因为我的项目是多线程的,所以对我来说很容易做出决定。

您可以从 Page-11 this PDF。

HTH

关于c++ - 使用 Boost.Signal 代替 Qt 的信号?没有moc吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2092658/

相关文章:

c++ - 如何在 Qt 中导出新的基本文件名?

c++ - 删除 QNetworkReply *reply 导致代码外的 SIGSEGV?

c++ - 无法使用带有boost C++的ubuntu中的完整路径打开文件

c++ - 如何将 protobuf 的 boost::shared_ptr 指针传递给函数?

c++ - 在不同的 CUDA 内核中访问类成员

c++ - 丢失唤醒 : What if the producer acquires the mutex first?

c++ - 如何在mingw中启用异常处理

c++ - dynamic_cast<void*> 什么时候有用?

qt - 如何将 QGraphicsView 锚定到场景上的特殊点?

c++ - boost::匿名段上的进程间内存分配器