发现以前在Qt4中使用winEvent写的边缘拖动无法通过编译.

之前项目的代码从Qt4迁移到Qt5, 发现以前在Qt4中使用winEvent写的边缘拖动无法通过编译.

查了一下原来是在Qt5中已经移除winEvent, 并使用nativeEvent来代替.

那么在工程中只需要略加修改即可使用, 主要改两个地方:

1. 加入nativeEvent函数:

[cpp] view plaincopy

  1. bool MainDialog::nativeEvent(const QByteArray &eventType, void *message, long *result)
  2. {
  3. Q_UNUSED(eventType);
  4. MSG* msg = reinterpret_cast<MSG*>(message);
  5. return winEvent(msg, result);
  6. }

2. winEvent中在原来需要返回给父类处理的地方加个判断:

[cpp] view plaincopy

  1. bool MainDialog::winEvent(MSG *message, long *result)
  2. {
  3. ...
  4. if (message->message != WM_NCHITTEST )
  5. {
  6. #if QT_VERSION < 0x050000
  7. return QDialog::winEvent(message, result);
  8. #else
  9. return QDialog::nativeEvent("", message, result);
  10. #endif
  11. }
  12. ...
  13. }

这就可以使用了, 并且可以向后兼容.

时间: 2024-09-29 22:52:55

发现以前在Qt4中使用winEvent写的边缘拖动无法通过编译.的相关文章

用html5中的canvas写的时钟

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8&

在Android中调用C#写的WebService(附源代码)

由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebService当做一个对象使用,利用Vs2010中的代码提示功能就能爽歪歪地把想要的东西全部点出来.在Android调用,麻烦了一点,但是也还好.主要是我们需要自己在代码中确定要调用WebService的方法名是什么,要传给WebService什么参数以及对应的参数名,另外,一些额外的信息比如soap的版本号

裴东辉-在jsp页面中使用&lt;%!%&gt;写java方法

<%!%>是声明标签 因为Jsp页在到tomcat的时候会被编译为java文件 jsp页面里面的所有东西都会包含在一个方法里 如果不用声明标签去声明这是个方法 就会报错了 因为方法里面不能有方法 裴东辉-在jsp页面中使用<%!%>写java方法

如何在jmeter中调用自己写的java工具包

本文介绍在jmeter中调用自己写java工具包,并非直接继承jmeter提供的java sample request接口. 工具/原料 jmeter eclipse 方法/步骤 通常用jmeter做http请求(或者其他类型)时,有时候要对请求的数据(或者响应的数据)进行特定的处理再进行请求,如加密.解密.  这时候我们可以用java自己写一些工具类,利用jmeter提供的beanshell来调用我们的工具类对数据进行处理,然后再进行相关的请求.  首先在eclipse写个属于自己的工具类,如

Q3ListBox在Qt4中出错

在Qt4中的desinger中涉及到控件Q3ListBox,但是在make的时候出现提示错误,是说无法解析到外部符号等等. 原因是:因为这个是Qt3的控件,Qt4并没有做到很好的支持,所以必须加上QT3的suuport 在.pro文件中加入一行: QT += qt3support: 再次进行make后就可以用了. Q3ListBox在Qt4中出错

indows 2008 r2/做了SPS2007---2013后,发现添加原来域中的域组添加不上

根据上次的网络包的分析, 我们在AD中找到了wtc-beijing-it的组, 不过在SharePoint日志中我们没有发现搜索成功的记录. - SearchResultEntry: CN=WTC-BeiJing-IT,OU=Groups,OU=BeiJing,OU=WTC User,OU=WesTrac China,DC=westrac,DC=com,DC=cn + ObjectName: CN=WTC-BeiJing-IT,OU=Groups,OU=BeiJing,OU=WTC User,O

pycharm中导入自写模块时,模块下出现红线

问题描述: 在pycharm中导入自己写的模块时,得不到智能提示,并在模块名下出现下红线,但是代码可以执行,错误提示为下图所示: 解决办法: 出现 以上情况,是因为文件目录设置不当导致,pycharm中的第一个文件夹,即代表项目,当在其中再次建立文件夹时,是按package处理的,如果要在这些文件夹内import其他文件,需要将完整路径导入进来,如下所示: 或者使用import 按照导入包的模式先导入包,再使用包来调用其中的模块.

app刚开始启动时(即:appdelegate文件中)可以写的几个功能

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } span.s1 { font: 12.0px "Helvetica Neue" } span.s2 {

Qt4中学习使用QtCharts绘图一:

QtCharts 模块是Qt官方提供的用于展示图表数据信息的模块,通过QtCharts提供的一系列图表组件,可以很容易地做出漂亮的图表来.在Qt5中,目前QtCharts已经开放使用,用户在安装Qt环境时可以根据需要选择是否安装QtCharts模块. QtCharts模块是基于Qt Graphics View Framework,即Qt 图形视图框架实现的,可以很方便地做出漂亮的用户界面. ? ?在Qt4中,由于Qt官方并未提供QtCharts绘图模块儿开放使用.我们只能通过下载Qt5中提供的Q