Qt不像VC++的win32/MFC编程那样,提供了现成的sleep函数可供调用.Qt把sleep函数封装在QThread类中.子线程可以调用sleep函数.但是如果用户想在主线程实现延时功能,该怎么办呢?方法是自定义sleep延时函数.通过QDateTime来实现时间差. #include <QDateTime> void MainWindow::sleep(int msec)//自定义Qt延时函数,单位毫秒 { QDateTime last = QDateTime::currentDate…
QT 的延时函数分为非阻塞延时 和 阻塞型延时 非阻塞延时: void GreenPass3::delaymsec(int msec){    QTime dieTime = QTime::currentTime().addMSecs(msec); while( QTime::currentTime() < dieTime ) QCoreApplication::processEvents(QEventLoop::AllEvents, 100);} 阻塞延时: void GreenPass3::…
以下的代码里面有自定义槽函数的内容,同时也有信号实现的函数: #ifndef MAINWIDGET_H #define MAINWIDGET_H #include <QWidget> #include <QPushButton> class MainWidget : public QWidget { Q_OBJECT public: MainWidget(QWidget *parent = 0); ~MainWidget(); void mySlot();//自定义的槽函数 pri…
Qt 自定义事件很简单,同其它类库的使用很相似,都是要继承一个类进行扩展.在 Qt 中,你需要继承的类是 QEvent. 继承QEvent类,你需要提供一个QEvent::Type类型的参数,作为自定义事件的类型值.这里的QEvent::Type类型是QEvent里面定义的一个enum,因此,你是可以传递一个int的.重要的是,你的事件类型不能和已经存在的type值重复,否则会有不可预料的错误发生!因为系统会将你的事件当做系统事件进行派发和调用.在Qt中,系统将保留0 - 999的值,也就是说,…
信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性.当某个信号被发射,就需要调用与之相绑定的槽函数.这与Windows下的消息机制类似,消息机制是基于回调函数.一个回调即是一个函数的指针,因此如果希望一个处理函数通知一些事件,可以传递一个函数(回调函数)的指针给这个处理函数.这个处理函数就会在适当的时候调用回调函数.但是回调函数有两大缺点:第一,它们不是类型安全的.我们从来不敢确定处理函数会用正确的参数来调用回调函数:第二,回调函数被强力和处理函数联系着,因为处理函数必须知道去…
创建用户事件 创建一个自定义类型的事件,首先需要有一个事件号,其值通常大于QEvent::User.为了传递事件信息,因此必须编写自定义的事件类,该事件类从QEvent继承. 编写用户事件:编写用户事件类的方法是首先定义一个事件号.然后实现用户事件类,应用程序将把用户事件类于Qt的事件类同等处理. //用户事件类QOriCodeEvent头文件qoricodeevent.h #include <QEvent>#define ORI_DIS_EVENT QEvent::User+12 class…
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSet使用及Qt自定义类型使用QHash等算法     本文地址:http://techieliang.com/2017/12/580/ 文章目录 1. 介绍 2. 简单范例 3. 自定义类型 1. 介绍 Qt提供的一个单值的数学集合的快速查找容器,使用方式与QList相同,但其内元素不会有重复.详细说明见 官方文档 注意,此容器实现方式是基于哈希表,而不是红黑树,若使用自定义类必须提供对…
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt自定义标题栏     本文地址:http://techieliang.com/2017/11/326/ 代码较多,显示效果不佳,建议原地址查看 文章目录 1. 标题栏的最大化.最小化.关闭按钮图标 2. QToolBar基本使用 3. QToolBar控件局右显示 4. 双击标题栏最大化 5. 窗口拖拽 1. 标题栏的最大化.最小化.关闭按钮图标 此类按钮建议使用QToolButton实…
//connect 函数有4个参数 分别是 发送者 信号.接受者 ,槽 //connect(sender,signal,receiver,slot) /* * 信号和槽 * 信号 就是一个普通的函数 定义信号的时候需要在函数前面加上signals: ,不需要实现 * 槽 函数 在QT5中科院是类的任意成员函数,静态函数,全局函数 lambda 表达式 * QT4中槽函数的定义 public slots: void send(); * 信号和槽是可以自定义的 * 信号和槽是没有返回值的 * 信号和…
1. Qt中自定义信号槽的使用 Qt框架提供的信号槽在某些特定场景下是无法满足我们的项目需求的,因此我们还设计自己需要的的信号和槽,使用connect()对自定义的信号槽进行连接. 如果想要使用自定义的信号槽, 首先要编写新的类并且让其继承Qt的某些标准类,我们自己编写的类想要在Qt中使用使用信号槽机制, 那么必须要满足的如下条件: 这个类必须从QObject类或者是其子类进行派生 在定义类的头文件中加入 Q_OBJECT 宏 1.1 自定义信号 要求: 1. 信号是类的成员函数 2. 返回值是…