QT自定义消息
1.派生QAbstractNativeEventFilter,重写nativeEventFilter()函数
#ifndef CMYMESSAGEHANDLER_H
#define CMYMESSAGEHANDLER_H
#include <QAbstractNativeEventFilter>
#define WM_SEND_MY_MESSAGE WM_USER+1000
class CMyMessageHandler : public QAbstractNativeEventFilter
{
//Q_OBJECT //这个不需要...
public:
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE;
//Signals:
// void SigTest() //新增加信号SigTest()。
};
#endif // CMYMESSAGEHANDLER_H
#include "CMyMessageHandler.h"
#include <windows.h>
#pragma comment(lib, "user32.lib")
bool CMyMessageHandler::nativeEventFilter( const QByteArray &eventType, void *message, long *result )
{
MSG* pMsg = reinterpret_cast<MSG*>(message);
if(pMsg->message == WM_SEND_MY_MESSAGE)
{
// ....处理
return true;
}
return false;
}
2.main函数添加类对象
#include <QtWidgets/QApplication>
#include "CMyMessageHandler.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ChateRoom w;
w.show();
//------------------main函数添加----------------
CMyMessageHandler myMsgHanler;
a.installNativeEventFilter(&myMsgHanler);
//----------------------------------------------
return a.exec();
}
QT自定义消息的更多相关文章
- QT 自定义消息(超级简单的一个例子)
#define TEST_EVENT QEvent::User + 100 class CVxActuatorMain : public QMainWindow { protected: ...
- QT 自定义消息
#define TEST_EVENT QEvent::User + 100 class CVxActuatorMain : public QMainWindow { protected: ...
- Qt 自定义消息窗口
用于设置取消时,询问是否保存修改的DLGvoid SetWindow::cancelButton() { if( m_IsChange) { QMessageBox msgBox; msgBox.se ...
- Qt之qInstallMessageHandler(重定向至文件)
简述 在Qt之qInstallMessageHandler(输出详细日志)一节中,我们讲解了如何使用自定义消息处理程序输出调试信息,而且可以很直观.很方便的得到输出代码所在的文件.函数.行号等信息. ...
- QT学习笔记2
初探信号槽 代码如下: QPushButton *button=new QPushButton("quit"); QObject::connect(button,SIGNAL(cl ...
- QT多线程及通过事件进行通信(通过自定义事件,然后QApplication::postEvent给主界面,我之前用的是信号槽)
可以通过QThread实现跨平台的多线程开发,Qt库负责在特定平台上的特定多线程实现.要采用QThread进行多线程开发,首先需要包含头文件: #include <QThread> 然后需 ...
- QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)
QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...
- [转]QT子线程与主线程的信号槽通信-亲测可用!
近用QT做一个服务器,众所周知,QT的主线程必须保持畅通,才能刷新UI.所以,网络通信端采用新开线程的方式.在涉及到使用子线程更新Ui上的控件时遇到了点儿麻烦.网上提供了很多同一线程不同类间采用信号槽 ...
- 【PyQt5-Qt Designer】Qt 的标准对话框总结
PyQt5 各种弹出对话框的总结 忙碌了两天才总结完,深刻体会到 “编程在实践中才能领悟更深”,后续有了更多的 理解继续来补充... 效果如下: 参考: https://www.cnblogs.com ...
随机推荐
- mysql缓存分析
- [development][http][libhtp] suricata的http库--libhtp
首先,从文档来看, 它支持管道化的http, 也可以说过于重量级. 其次, 还没有达到产品化的稳定性. 并不是完全对应我的需求, http模块是一个整体性能相关模块. 应该按需定制更合理. 但是,功能 ...
- uarts裸机程序
硬件平台:JZ2440 实现功能:向串口软件实现输出putchar函数 start.s --> 设置堆栈,关闭看门狗,初始化时钟,初始化sdram init.c -->初始化 ...
- 第二章 构建布局良好的windows程序
工具箱→菜单和工具栏 菜单栏 MenuStrip的类型 MenuItem:菜单项 TextBox:文本框 ComboBoX:组合框 Separato:分割线 前面都有ToolStrip做前缀 Appl ...
- inet超级服务器和守护进程
inetd是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求.它可以为多种服务管理连接,当 inetd接到连接时,它能够确定连接所需的程序,启动相应的进程,并把 socke ...
- InnoDB表回收空间
当innodb_file_per_table设置为OFF,那么所有数据将被存储在ibdata文件.如果删除一些数据和删除一些表则没有回收未使用的磁盘空间,除了导出表然后再导入的方法来回收表空间大小,除 ...
- wamp支持win10吗?怎么设置?
上周ytkah总算把系统升级到win10了,可怎么设置wamp支持win10呢?启动wampwerver是处于黄色状态,打开本地页面是空白,应该是端口问题. 单击右下角wamp图标,点Apache,修 ...
- 各版本系统安装tesseract-ocr
Mac版本 1.tesseract-ocr安装 brew install tesseract-ocr 注意:如果未安装brew命令,可以输入命令: brew官网:http://brew.sh /us ...
- 报错解决——OSError: libdarknet.so: cannot open shared object file: No such file or directory
在python目录下打开终端,输入 python darknet.py 结果报错 Traceback (most recent call last): File “darknet.py”, line ...
- 使用python实现日志功能
Python脚本日志系统 Python通过logging模块提供日志功能,关于logging模块的使用网络上已经有很多详细的资料,这里要分享的是怎样在实际工程中使用日志功能. 假设要开发一个自动化 ...