signals-slots相关内容
我有一个类MyClass与: - private: pushButton * button; void connectSignalAndSlot(); - private slot: void buttonAction(); 我想使用connectSignalAndSlot()在MyClass中连接这些文件,如下所示: void MyClass
..
在尝试使多相机系统使用不同的线程处理不同的相机时,我无法获得信号和插槽在不同线程之间正常工作。我知道发送信号的对象和相关插槽的对象生活在不同的线程,因此我知道我可能只需要为连接找到一个合适的“连接类型”参数的事实是错误的。最终,我发现只有使用Qt :: DirectConnection才能使一切正常工作。 找到下面的简化代码。 应用程序是一个主程序,它应该创建所有线程并启动他们。在这个
..
我有一个QTableWidget在我的形式,我想做一些事情,当用户双击行或列的标题。我使用以下connect语句: connect(ui-> tblResults-> horizontalHeader(),SIGNAL(doubleClicked QModelIndex)),this,SLOT(tableDoubleClicked(QModelIndex))); 其中
..
我是新的GUI编程和多线程。我正在创建一个实时应用程序,从我的车接收信息,并以一些有意义的方式呈现。我的应用程序被布局为3个线程,GUI(主线程),渲染线程和硬件comm线程。在渲染和硬件线程之间是一个共享的环形缓冲区。在渲染中,我创建了一个定时器,以便它每秒绘制新的界面20次。我想线程通知主线程有一个新的屏幕可用,我在想一个信号/槽的方法将工作最好的为此。这得到我的问题。当我的渲染调用一个槽,说
..
我想从Qt中的C ++线程(std :: thread)发出一个信号。 我该怎么办? $ b $你肯定可以从线程发出一个信号( QThread , std :: thread 或甚至 boost :: thread )。只有你必须小心你的连接函数的第五个参数( Qt :: ConnectionType ): $ c> Qt :: DirectConnection :当信号被发出时,槽立
..
有可能有一个模板类,它继承自QObject(并且它的声明中有Q_OBJECT宏)? 我想创建一个像adapter槽,这将做某事,但槽可以采取任意数量的参数(参数数量取决于模板参数)。 我只是试着做,链接器错误。我想gmake或moc不会被调用这个模板类。有办法做到这一点吗?可能通过显式实例化模板? 解决方案 不可能混合模板和Q_OBJECT,但如果你有一个类型的子集,列出这样的
..
我正在创建一个抽象基类,并且正在想我可能需要一个纯虚拟信号。但是当我编译时,我得到一个警告,我定义的纯虚拟信号: ../ FILE1.h:27:警告:信号不能被声明为虚拟 ../FILE1.h:28:警告:信号不能被声明为虚拟 在C ++ / Qt中定义纯虚拟信号是否有效?是否有效定义虚拟信号? Qt的信号和插槽文档页面说,您可以定义虚拟插槽,但不谈论信
..
这是一个我从来没有得到过const-ref,我真的希望有人可以解释它给我。 当调用另一个函数函数,我得到的const-ref是传递堆栈对象,我不打算篡改的最好的方法。例如: void someInnerFunction(const QString& text){ qDebug()
..
我设置了一个QT菜单,它会自动连接到操作函数 on_actionOpen_triggered()。后来我想传递一个文件名字符串到这个函数,以便在特殊条件下手动调用此函数。所以我将函数签名更改为 on_actionOpen_triggered(const char * filename_in)。在这个更改后程序运行良好,但在终端有一个抱怨, QMetaObject :: connectSlot
..
如何通过信号或槽(成员函数,Qt 5中的新语法)作为函数的参数,然后调用 connect ? 例如 :不能编译 - PointerToMemberFunction code>是我的问题。 bool waitForSignal(const QObject * sender,PointerToMemberFunction ??? signal,int timeOut = 5000 / *
..
我一直在观看YouTube上的Qt教程系列,其中作者展示了当按下按钮时如何调用一个功能。 他右键点击Qt Creator IDE中的按钮,选择了“转到插槽“,从那里他选择将触发生成的函数的信号。由于我习惯使用Netbeans开发,我只是试图使用嵌入式Qt设计器来跟随他的例子。不幸的是,当我右键点击我的按钮或任何小部件时,没有“转到插槽...”条目。我可以,当然,为我的主窗口创建一个新的插槽,然后连
..
这里SO和实际的Qt文档之间存在差异。 我读过这个问题,我想进一步澄清。任何人都可以确认: 信号总是 protected 仅由类或其任何子类。我不知道这是真的;上面的问题显示了支持这种说法的答案。但 Qt文档说:信号是公共访问函数,可以从任何地方发射,但我们建议只从定义信号及其子类的类中发射它们。那么是什么呢? 功能,因此可以是公共的,私人的或受保护的。显然,外部类将有能力控制,如果
..
有人可以用简单的术语解释“信号和槽位”模式吗? 解决方案 信号和槽是一种解耦方式发送器(信号)和零个或多个接收器(时隙)。假设您有一个系统,其中包含您希望对系统感兴趣的任何其他部分提供的事件。 当发件人发送信号时,如果发送者发出信号,事件(通常通过调用与该事件/信号相关联的功能),该事件的所有接收器被自动调用。 因为这个问题被标记为C ++,所以这里有一个指向
..
我可以使用以下代码(最终插槽连接到myQtSignal)吗?“ class Test:public QObject { Q_OBJECT 信号: void myQtSignal(const FooObject& obj); public: void sendSignal(const FooObject& fooStackObject) { emit myQtSi
..
我最近一直在学习C ++和Qt4,但我碰到了一个绊脚石。 我有以下类和实现: class Window:public QWidget { public: Window(); public slots: void run(); private: // ... }; 和 // ... } Window :: run()
..
根据文档,从槽的返回值并不意味着任何东西。 然而在生成的moc代码中,我看到如果一个槽返回一个值,这个值被用于某事。任何想法,它做什么? 关于。这是从moc生成的代码。 'message'是一个不返回任何内容的槽,'selectPart'被声明为返回int。 case 7:message (* reinterpret_cast(_a [2])));(* rei
..
是否可以将信号连接到静态槽而不使用接收器实例? 像这样: connect(& object,SIGNAL ()); STATIC_SLOT(staticFooMember())); 有一个 QApplication :: closeAllWindows / code> function with [static slot] attribute in Qt documentation。有
..
Boost.Signals 允许使用槽的返回值形成的各种策略信号的返回值。例如。添加它们,形成一个向量,或返回最后一个。 共同的智慧Qt文档 [EDIT:以及此问题] 的一些答案)是没有这样的事情是可能与Qt信号。 但是,当我对下面的类定义运行moc: class Object:public QObject { Q_OBJECT public: explicit Obj
..
我想从C ++发送信号到我的QML文件中的插槽。 我已经得到它工作没有和原始类型参数,虽然如果我想发送一个 QString 到我的QML槽我在连接时得到一个错误。 > 我在main.cpp中连接 QObject * contentView = rootObject-> findChild(QString(“contentView”)); QObject
..
Qt文档规定信号和槽可以直接,排队和 / code>。 它还表示,如果拥有槽的对象在线程中不同于拥有信号的对象,发出这样的信号将会像发布消息一样 - 信号emit将返回instant和slot方法将在目标线程的事件循环中调用。 不幸的是,文档没有指定“生命”代表,没有可用的例子。我试过下面的代码: main.h: class CThread1:public QThread
..