signals-slots相关内容

如何添加一个插槽到QWidget?

我有一个QMainWindow,它有一个 QAction 的信号 triggered()连接到一个插槽 about2()。 ... connect(mAboutAction2,SIGNAL(triggered()),this,SLOT(about2()) ); ... void occQt :: about2()// UI { QWidget * pWidget ..
发布时间:2016-11-01 09:46:49 C/C++开发

Qt信号和插槽的效率

我正在浏览QMainWindow中的方法,并注意到一些部分(例如resizeEvent和winEvent)不是作为信号实现的,而是你必须继承这个类才能覆盖它们。 我的问题是,信号和槽的有效性,并且可以实现这些类型的函数作为其他类可以订阅的信号。例如,在高性能游戏引擎内部。 解决方案 从我记得,Trolltech说,比虚拟调用慢约10倍。您应该能够轻松处理几十个,即使不是每秒数十万个信 ..
发布时间:2016-10-28 04:13:59 C/C++开发

断开并稍后重新连接Qt信号

有没有办法暂时断开Qt信号,而是存储一个连接到它的对象的列表,这样信号以后可以重新连接到它们? 解决方案 http://qt-project.org/forums/ viewthread / 6820 这篇文章讨论了跟踪特定信号的连接列表的方法,可以在断开连接后调用它来重新连接。 ..
发布时间:2016-10-27 03:57:00 C/C++开发

为什么Qt在基类中寻找我的槽而不是派生的?

我有我的类 X 它继承自Qt的类 Base 。我在我的类 X 中声明并定义了 void mySlot() X的构造函数。但是,当运行我的程序时,我收到一个错误信息,说明在 Base void mySlot() > 为什么Meta Object Compiler(moc)生成的代码在基类中而不是在我的(派生)类中查找我的槽? 解决方案 是否在派生类上添加了Q_OBJECT宏? ..
发布时间:2016-10-25 17:04:40 C/C++开发

Slim c ++信号/事件机制,带有槽的移动语义

我想在c ++中设计一个信号和槽系统。该机制有点灵感来自boost :: signal,但应该更简单。我正在使用MSVC 2010,这意味着一些c ++ 11的功能是可用的,但可悲的是可变的模板不是。 首先,让我给一些上下文信息。我实现了一个系统来处理由连接到pc的不同硬件传感器生成的数据。每个单独的硬件传感器由继承自通用类设备的类表示。每个传感器作为接收数据的单独线程运行,并且可以将其转发 ..
发布时间:2016-10-25 15:28:53 C/C++开发

有没有办法停止一个boost ::信号从调用其槽,如果其中一个返回true?

我正在使用boost库,我的问题是关于boost ::信号。 我有一个信号可能调用许多不同的插槽,但只有一个插槽将匹配调用所以我想让这个特定的槽返回true,调用将停止。 是否可能? 它是否有效? 你能建议我更好的方法来做它,如果它不高效? 解决方案 经过一些研究,我发现在boost文档中他们写了返回值的插槽。 他们建议使用不同的组合器如下: stru ..
发布时间:2016-10-25 14:02:13 C/C++开发

使用信号和插槽更新指针

我是Qt的新手;请帮助我解决问题。 我使用线程在后台执行密集操作。同时我想更新UI,所以我使用SIGNALS和SLOTS。更新UI我发出一个信号并更新UI。 让我们来看下面的示例代码, struct sample { QString name; QString地址; }; void Update(sample *); void sampleFunct ..
发布时间:2016-10-25 13:38:19 C/C++开发

这种线程间通信的方法是否安全?

我有3个对象(继承自 QObject ),每个对象包含一个单独的 std :: list 。每个对象都在主gui线程中创建(没有父对象),然后被推送到自己的线程(使用Qt的 QObject :: moveToThread())。 每个线程都连接到一个gui,消息在不同线程之间与数据发送。每个线程基本上处理它自己的列表。例如: Obj 1:数据的消费者。它的pop是它的列表的前面(如果数 ..
发布时间:2016-10-24 14:46:36 C/C++开发

信号与信号2

应用程序是多线程的,但执行信号处理的部分是单一的线程。 如果多线程不是问题,有没有理由更喜欢Boost.Signals2和Boost.Signal2? 解决方案 Boost.Signals现在已被弃用,应该使用Boost.Signals2(参见 v1.54文档) ..
发布时间:2016-10-24 12:53:08 C/C++开发

信号与信号2

应用程序是多线程的,但执行信号处理的部分是单一的线程。 如果多线程不是问题,有没有理由更喜欢Boost.Signals2和Boost.Signal2? 解决方案 Boost.Signals现在已被弃用,应该使用Boost.Signals2(参见 v1.54文档) ..
发布时间:2016-10-24 12:42:02 C/C++开发

如何处理一个Qt子类中的信号?

如何处理子类中的信号?假设我的子类是从 QTextEdit 派生的,并且对 textChanged 信号感兴趣。将一个对象连接到自身似乎很愚蠢,我应该能够简单地覆盖 textChange 方法 - 但它不是 virtual 解决方案 > 您不能实现/覆盖信号,因此唯一的方法是创建一个新的槽并将其连接到textChanged(): connect(this,SIGNAL(textCh ..
发布时间:2016-10-23 22:56:51 C/C++开发

如何使用模板与QT信号和插槽?

我想在我的程序中使用信号和插槽,但不幸的是,它们应该用于传输几种不同的数据类型(例如QString,double等),我不想写20个不同的插槽,只是因为我需要每个数据类型一个。但是当我要声明一个像 的模板 ..
发布时间:2016-10-23 19:55:12 C/C++开发

防止在Qt中触发信号

我们有一个 QCheckBox 对象,当用户检查或删除检查,我们要调用一个函数,所以我们连接我们的函数 stateChanged状态)信号。另一方面,根据一些条件,我们也改变 QCheckBox 对象的状态,这会导致不需要的信号。 在某些情况下有没有办法防止触发信号? 解决方案 “http://doc.qt.nokia.com/latest/qabstractbutton.html# ..
发布时间:2016-10-23 13:28:53 C/C++开发

在Qt中从静态类方法发送信号

我试图编写一个静态回调函数,该函数从同一类中的另一个静态函数频繁调用。我的回调函数需要 emit 一个信号,但由于某种原因,它只是没有这样做。我把它放在一个调试器和插槽从来没有被调用。然而,当我放置代码我用来 emit 在非静态函数中的数据,它的工作原理。有没有原因,我不能从静态函数发出信号?我尝试声明一个类的新实例,并调用emit函数,但没有运气。 class Foo { sign ..
发布时间:2016-10-23 12:44:09 C/C++开发

Qt是否支持虚拟纯插槽?

我的GUI项目在 Qt 有很多“配置页”类,它们都直接从 QWidget 继承。 最近,我意识到所有这些类共享2个公用槽( loadSettings()和 saveSettings())。 关于这一点,我有两个问题: 将这两个插槽作为虚拟纯方法编写一个中间基础抽象类(让它名为 BaseConfigurationPage )有意义吗? (每个可能的配置页将始终有这两种方法,所以我会 ..
发布时间:2016-10-22 17:19:45 C/C++开发

使用QSlider更改变量的值

我尝试使用 QSlider 更改变量的值, #include class MainThread:public QWidget { Q_OBJECT public: MainThread(QWidget * parent = 0); 私有插槽: void setValue(double); private: QSlider * slider; ..
发布时间:2016-10-20 23:59:57 C/C++开发

启动多个线程并重新启动它们

我试图编写一个系统,其中我创建了x个工作线程。这些线程将在不同的时间完成他们的工作。当任何一个完成他们的工作,我将检查他们的输出,并重新启动它们(保持线程周围的x)。我将这样做一些有趣的迭代。因此,基本上一个控制器线程将启动x个线程,并且将在它们完成其工作时重新启动它们,直到达到一定数量的迭代。 附加说明#1:当我说重新启动时,等待直到当前一个退出/中止并被销毁,并创建一个新的。它不必“重新 ..
发布时间:2016-10-20 23:28:24 C/C++开发