随笔分类 -  Qt-Slot

摘要:Pure C++11 Signals and Slotshttps://github.com/NoAvailableAlias/nano-signal-slotsignal-slot-benchmarkshttps://github.com/NoAvailableAlias/signal-slot- 阅读全文
posted @ 2017-08-07 16:21 findumars 编辑
摘要:首先不能继承QObject的情况在开发中遇到得并不多,笔者在一年多的Qt项目开发中只遇到两三次。而且都是因为引进了第三方库导致编译过程中报错。 要想解决这个问题其实不难,因为笔者遇到的问题都是想定义一个信号,定义的槽情况没有遇到过,可以提出一个想法,有需要的朋友试一下。 要想实现信号发送,可以定义一 阅读全文
posted @ 2017-06-30 17:50 findumars 阅读(3205) 评论(0) 推荐(0) 编辑
摘要:You can define the QT_NO_KEYWORDS macro, that disables the “signals” and “slots” macros. If you use QMake: (Qt Documentation here) If you’re using ano 阅读全文
posted @ 2017-03-03 17:31 findumars 阅读(5329) 评论(0) 推荐(0) 编辑
摘要:in the order they have been connected in the order they have been connected 起源 前些天忘记在哪儿讨论过这个问题,今天在csdn又看到有网友问这个问题,而其他网友却无一例外的给出了“无序”这个答案。 Manual Qt的问题 阅读全文
posted @ 2017-02-15 17:56 findumars 阅读(728) 评论(0) 推荐(0) 编辑
摘要:在使用c/c++的connect函数时在前面写::connect()这样就可以解决了 阅读全文
posted @ 2017-02-07 20:39 findumars 阅读(1135) 评论(0) 推荐(0) 编辑
摘要:信号槽是Qt中特有的概念。它使得程序员将不同的object绑定起来,而object对象间并不需要对相互了解。 Slots也是普通的c++方法,它们可以是virtual;可以被重载;可以使private、protected、public,可以像其它c++方法一样有各种类型的参数,Signals则无这些 阅读全文
posted @ 2017-01-13 17:05 findumars 阅读(5455) 评论(0) 推荐(1) 编辑
摘要:Qt is well known for its signals and slots mechanism. But how does it work? In this blog post, we will explore the internals of QObject and QMetaObjec 阅读全文
posted @ 2017-01-11 22:34 findumars 阅读(393) 评论(0) 推荐(0) 编辑
摘要:SIGNAL-SLOT是Qt的一大特色,使用起来十分方便。在传统的AWT和Swing编程中,我们都是为要在 监听的对象上添加Listener监听器。被监听对象中保存有Listener的列表,当相关事件发生时,被监听 对象会通知所有Listener。而在Qt中,我们只需通过connect方法连接两个对 阅读全文
posted @ 2017-01-04 19:07 findumars 阅读(789) 评论(0) 推荐(0) 编辑
摘要:可以通过QThread实现跨平台的多线程开发,Qt库负责在特定平台上的特定多线程实现。要采用QThread进行多线程开发,首先需要包含头文件: #include <QThread> 然后需要从QThread继承一个自己的线程类,暂作MyThread,关键是要实现QThread内的一个虚函数run。在 阅读全文
posted @ 2016-12-10 00:02 findumars 阅读(7463) 评论(0) 推荐(0) 编辑
摘要:1. 定义回调接口类: [cpp] view plain copy class UIcallBack { public: virtual void onAppActivated() = 0; virtual void onShowMore() = 0; }; [cpp] view plain cop 阅读全文
posted @ 2016-12-02 06:45 findumars 阅读(2179) 评论(0) 推荐(0) 编辑
摘要:当你觉得写代码是一件重复性极高的工作时,这时你就应该考虑换个方式来实现了。 提高代码效率,减少代码量。 代码片: [cpp] view plain copy print? void Widget::onClicked() { QPushButton* button = qobject_cast<QP 阅读全文
posted @ 2016-10-19 23:06 findumars 阅读(909) 评论(0) 推荐(0) 编辑
摘要:昨天调试项目时,突然发现如下消息: QObject::connect: Cannot queue arguments of type 'ERROR_LEVEL' (Make sure 'ERROR_LEVEL' is registered using qRegisterMetaType().) 其中 阅读全文
posted @ 2016-10-13 18:18 findumars 阅读(435) 评论(0) 推荐(0) 编辑
摘要:在不断执行: void MyTool::DeleteAllFiles(){ for (i = 0; i <= n - 1; i++) { // do something }}在for循环没有执行完毕的情况下,外部给这个类发信号,根本接受不到信号。就非得这样写: void MyTool::Delete 阅读全文
posted @ 2016-09-30 17:42 findumars 阅读(425) 评论(0) 推荐(0) 编辑
摘要:请问UI线程给子线程发信号,应该用哪种连接方式? 如果子线程正在执行一个函数,我发射信号去执行子线程的另一个函数,那么此时子线程到底会执行什么呢? 用信号量做的同步。第一把信号槽的事件丢到线程的事件队列,第二信号量等待,等到事件处理完触发,继续执行主线程逻辑。子线程还是处理事件,只是信号槽的槽函数执 阅读全文
posted @ 2016-09-30 00:34 findumars 阅读(303) 评论(0) 推荐(0) 编辑
摘要:引用自:http://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/ 的一篇经典文章,是关于Qt的信号和槽的分析的。看年份是2001年,有年头了。 其中: 7.信号与槽不能有缺省参数。 既然signal->slot绑定是发 阅读全文
posted @ 2016-09-16 19:49 findumars 阅读(1700) 评论(0) 推荐(0) 编辑
摘要:官方文档: 函数原型: T qobject_cast ( QObject * object ) 本方法返回object向下的转型T,如果转型不成功则返回0,如果传入的object本身就是0则返回0。 在使用时有两个限制: 1# T类型必须继承自QObject。 2# 在声明时必须有Q_OBJECT宏 阅读全文
posted @ 2016-08-24 23:44 findumars 阅读(9795) 评论(1) 推荐(3) 编辑
摘要:(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件: typedef void (__stdcall *Down 阅读全文
posted @ 2016-08-19 00:59 findumars 阅读(2281) 评论(1) 推荐(1) 编辑
摘要:QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。QT 支持下列平台:MS/WINDOWS-95、98、NT 和 2000;UNIX/ 阅读全文
posted @ 2016-08-07 04:55 findumars 阅读(1882) 评论(0) 推荐(0) 编辑
摘要:GUIs are Dynamic C++ is a standarized, powerful and elaborate general-purpose language. It's the only language that is exploited on such a wide range 阅读全文
posted @ 2016-07-23 06:30 findumars 阅读(339) 评论(0) 推荐(0) 编辑
摘要:双击testqt.ui 托一个push button到窗体中,双击,可以输入字符 按F4或 menu->edit->edit signals/slots 定义SLOT 选择已定义好的SLOT,点确定就可以进行关联了。 定义自定义SLOT: 点上面对话框中的EDIT按钮,弹出: 注意这里自定义的slo 阅读全文
posted @ 2016-06-29 05:29 findumars 阅读(4369) 评论(0) 推荐(0) 编辑