signals-slots相关内容

Qt线程之间的连接类型:为什么这样工作?

在尝试使多相机系统使用不同的线程处理不同的相机时,我无法获得信号和插槽在不同线程之间正常工作。我知道发送信号的对象和相关插槽的对象生活在不同的线程,因此我知道我可能只需要为连接找到一个合适的“连接类型”参数的事实是错误的。最终,我发现只有使用Qt :: DirectConnection才能使一切正常工作。 找到下面的简化代码。 应用程序是一个主程序,它应该创建所有线程并启动他们。在这个 ..
发布时间:2016-10-20 22:21:11 C/C++开发

Qt信号/插槽和线程

我是新的GUI编程和多线程。我正在创建一个实时应用程序,从我的车接收信息,并以一些有意义的方式呈现。我的应用程序被布局为3个线程,GUI(主线程),渲染线程和硬件comm线程。在渲染和硬件线程之间是一个共享的环形缓冲区。在渲染中,我创建了一个定时器,以便它每秒绘制新的界面20次。我想线程通知主线程有一个新的屏幕可用,我在想一个信号/槽的方法将工作最好的为此。这得到我的问题。当我的渲染调用一个槽,说 ..
发布时间:2016-10-19 20:50:43 C/C++开发

Qt - 从c ++线程发出一个信号

我想从Qt中的C ++线程(std :: thread)发出一个信号。 我该怎么办? $ b $你肯定可以从线程发出一个信号( QThread , std :: thread 或甚至 boost :: thread )。只有你必须小心你的连接函数的第五个参数( Qt :: ConnectionType ): $ c> Qt :: DirectConnection :当信号被发出时,槽立 ..
发布时间:2016-10-17 11:09:25 C/C++开发

QT:模板化的Q_OBJECT类

有可能有一个模板类,它继承自QObject(并且它的声明中有Q_OBJECT宏)? 我想创建一个像adapter槽,这将做某事,但槽可以采取任意数量的参数(参数数量取决于模板参数)。 我只是试着做,链接器错误。我想gmake或moc不会被调用这个模板类。有办法做到这一点吗?可能通过显式实例化模板? 解决方案 不可能混合模板和Q_OBJECT,但如果你有一个类型的子集,列出这样的 ..
发布时间:2016-10-17 09:54:10 C/C++开发

在C ++ / Qt中定义纯虚拟信号是否有效?

我正在创建一个抽象基类,并且正在想我可能需要一个纯虚拟信号。但是当我编译时,我得到一个警告,我定义的纯虚拟信号: ../ FILE1.h:27:警告:信号不能被声明为虚拟 ../FILE1.h:28:警告:信号不能被声明为虚拟 在C ++ / Qt中定义纯虚拟信号是否有效?是否有效定义虚拟信号? Qt的信号和插槽文档页面说,您可以定义虚拟插槽,但不谈论信 ..
发布时间:2016-10-17 09:35:26 C/C++开发

QMetaObject :: connectSlotsByName:没有匹配的信号

我设置了一个QT菜单,它会自动连接到操作函数 on_actionOpen_triggered()。后来我想传递一个文件名字符串到这个函数,以便在特殊条件下手动调用此函数。所以我将函数签名更改为 on_actionOpen_triggered(const char * filename_in)。在这个更改后程序运行良好,但在终端有一个抱怨, QMetaObject :: connectSlot ..
发布时间:2016-10-14 22:08:39 C/C++开发

Qt设计器,缺少“转到插槽”在上下文菜单中?

我一直在观看YouTube上的Qt教程系列,其中作者展示了当按下按钮时如何调用一个功能。 他右键点击Qt Creator IDE中的按钮,选择了“转到插槽“,从那里他选择将触发生成的函数的信号。由于我习惯使用Netbeans开发,我只是试图使用嵌入式Qt设计器来跟随他的例子。不幸的是,当我右键点击我的按钮或任何小部件时,没有“转到插槽...”条目。我可以,当然,为我的主窗口创建一个新的插槽,然后连 ..
发布时间:2016-10-14 21:25:38 C/C++开发

Qt信号和槽:权限

这里SO和实际的Qt文档之间存在差异。 我读过这个问题,我想进一步澄清。任何人都可以确认: 信号总是 protected 仅由类或其任何子类。我不知道这是真的;上面的问题显示了支持这种说法的答案。但 Qt文档说:信号是公共访问函数,可以从任何地方发射,但我们建议只从定义信号及其子类的类中发射它们。那么是什么呢? 功能,因此可以是公共的,私人的或受保护的。显然,外部类将有能力控制,如果 ..
发布时间:2016-10-14 20:49:30 C/C++开发

什么是信号和插槽?

有人可以用简单的术语解释“信号和槽位”模式吗? 解决方案 信号和槽是一种解耦方式发送器(信号)和零个或多个接收器(时隙)。假设您有一个系统,其中包含您希望对系统感兴趣的任何其他部分提供的事件。 当发件人发送信号时,如果发送者发出信号,事件(通常通过调用与该事件/信号相关联的功能),该事件的所有接收器被自动调用。 因为这个问题被标记为C ++,所以这里有一个指向 ..
发布时间:2016-10-14 12:56:11 C/C++开发

堆栈对象Qt信号和参数作为参考

我可以使用以下代码(最终插槽连接到myQtSignal)吗?“ class Test:public QObject { Q_OBJECT 信号: void myQtSignal(const FooObject& obj); public: void sendSignal(const FooObject& fooStackObject) { emit myQtSi ..
发布时间:2016-10-14 12:09:14 C/C++开发

Qt:slot返回值的意义?

根据文档,从槽的返回值并不意味着任何东西。 然而在生成的moc代码中,我看到如果一个槽返回一个值,这个值被用于某事。任何想法,它做什么? 关于。这是从moc生成的代码。 'message'是一个不返回任何内容的槽,'selectPart'被声明为返回int。 case 7:message (* reinterpret_cast(_a [2])));(* rei ..
发布时间:2016-10-14 10:55:40 C/C++开发

Qt信号能否返回值?

Boost.Signals 允许使用槽的返回值形成的各种策略信号的返回值。例如。添加它们,形成一个向量,或返回最后一个。 共同的智慧Qt文档 [EDIT:以及此问题] 的一些答案)是没有这样的事情是可能与Qt信号。 但是,当我对下面的类定义运行moc: class Object:public QObject { Q_OBJECT public: explicit Obj ..
发布时间:2016-10-13 10:28:53 C/C++开发

C ++ SIGNAL到Qt中的QML SLOT

我想从C ++发送信号到我的QML文件中的插槽。 我已经得到它工作没有和原始类型参数,虽然如果我想发送一个 QString 到我的QML槽我在连接时得到一个错误。 > 我在main.cpp中连接 QObject * contentView = rootObject-> findChild(QString(“contentView”)); QObject ..
发布时间:2016-10-11 22:16:47 C/C++开发

如何在Qt发出跨线程信号?

Qt文档规定信号和槽可以直接,排队和 / code>。 它还表示,如果拥有槽的对象在线程中不同于拥有信号的对象,发出这样的信号将会像发布消息一样 - 信号emit将返回instant和slot方法将在目标线程的事件循环中调用。 不幸的是,文档没有指定“生命”代表,没有可用的例子。我试过下面的代码: main.h: class CThread1:public QThread ..
发布时间:2016-10-11 22:09:22 C/C++开发