自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 qt事件系统源码-----定时器

几经周转,会进入到QEventDispatcherWin32的event方法中,此处是ZeroTimerEvent事件,会调用QCoreApplication::sendEvent方法,向定时器事件的QObject对象发送一个QTimerEvent事件,从而转入到QObject的event方法中执行;精度要求不高的事件,会调用windows API的setTimer函数,注册一个定时器事件,此事件的回调函数为nullptr,qt会使用windows系统产生的WM_TIMER事件;

2023-08-12 14:06:04 445

原创 qt源码---事件系统之QCoreApplication

wakeUp函数会调用WinAPI的PostMessage函数,投递一个WM_QT_SENDPOSTEDEVENTS事件,其会被processEvent函数捡取到,并最终转入QCoreApplicationPrivate中的sendPostedEvents函数处理(具体可以参考上一节);此处会判断接收的对象是否在主线程中,如果是在主线程中,会检测QCoreApplication的对象是否安装了事件过滤器,如果此事件被QCoreApplication事件过滤器检测到并被处理,并不会向下传递;

2023-08-06 18:28:57 790

原创 qt源码--事件系统之QAbstractEventDispatcher

2、qt通过processEvents函数不断捡取windows系统中的消息、自定义消息,并通过windowsAPI中的TranslateMessage函数翻译消息,DispatchMessage派发消息,将事件转入到qt_internal_proc中;1、qt通过注册一个隐藏的windows窗体类(主要时qt_internal_proc钩子函数),接收windows系统中的消息事件,并调用QCoreApplicationPrivate类中的sendPostedEvent函数,切入到qt的事件循环中;

2023-07-30 17:58:46 658

原创 qt源码--事件系统

qt源码--事件系统底层处理

2023-07-09 18:36:56 305

原创 QTableWidget加载大文件数据

QTableWidget加载大文件数据显示

2023-05-27 17:29:05 1680

原创 QObject源码--剩余内容

这样做应该是防止待删除对象执行其析构函数时消耗时间太长,而此时又执行了setParent方法时会引起异常(删除的对象又再次被添加到其他对象的children列表中,可以结合setParent方法理解)。遍历children列表,查找子对象中和T对象有继承关系的对象,且name为空或者和objectName相匹配时,既返回当前对象;判断新的parent对象和当前对象是否为同一线程,如果不在同一个线程在抛出警告信息,并返回(如果不在同一个线程,则QObject对象内存无法自动被回收,需要手动删除);

2023-03-19 17:45:55 348

原创 qt源码--信号槽

qt信号与槽源码分析

2023-02-25 19:27:42 1215

原创 qt调用matlab生成的dll库

qt调用matlab的dll库

2023-01-20 11:25:07 3860 8

原创 qt源码---QMetaObject(五)

qt源码,QMetaProperty

2022-10-04 19:33:52 591

原创 qt源码学习----QMetaObject(四)

qt源码,QMetaEnum

2022-10-03 21:35:32 517

原创 qt源码学习---QMetaObject(三)

qt源码,QMetaMethod

2022-10-01 20:03:52 1837

原创 qt源码学习----QMetaObject(三)

qt源码,QMetaObject中方法存储结构图

2022-09-30 21:10:33 636

原创 qt源码学习---QMetaObject(二)

qt源码分析

2022-09-25 13:49:35 525

原创 qt源码学习--QMetaObject(一)

qt源码学习--QMetaObject部分

2022-09-12 20:02:07 509

原创 Qt源码学习--QObject(一)

qt源码学习记录

2022-09-11 18:12:33 583

原创 编写一个静态方法histogram(),接受一个整形数组a[]和一个整数M为参数并返回一个大小为M的数组,其中第i个元素的值为整数i在数组中出现的次数。

编写一个静态方法histogram(),接受一个整形数组a[]和一个整数M为参数并返回一个大小为M的数组,其中第i个元素的值为整数i在数组中出现的次数。如果a[]中的值均在0到M-1之间,返回数组中所有元素之和应该和a.length相等。public static void histogram(int[] a, int m) { int[] buf = new int[m]; for (...

2019-12-17 14:28:43 511

原创 编写一个静态方法lg(),接收一个整型参数N,返回不大于log2(N)的最大整数。

/** * 将lg2(N)转换为2(N)指数函数来计算。 * @param n * @return */ public static int lg(int n) { int k = 0; int tmp = 1; while(tmp <= n) { tmp *= 2...

2019-12-13 15:19:31 239

原创 Linux下使用pyvisa控制GPIB设备

Linux下使用pyvisa控制GPIB设备1、目的 由于在Linux环境下安装NI-488.2驱动花费很长时间,而且出现的问题比较多,所以特此记录下。2、安装步骤2.1下载镜像文件从NI官网上下载NI-488.2和NI-Visa镜像文件。官网地址http://www.ni.com/zh-cn/support/downloads/drivers.html2.2安装镜像文件将镜像...

2019-07-11 16:10:41 3044

原创 linux下MySQL使用中文遇到的问题

1、在向MySQL中插入含有中文的字段时,出现ERROR 1366 (HY000): Incorrect string value: '\xE5\x93\x88\xE5\x93\x88' for column 'answer' at row 1等字段时,使用show create table table_name查看表的编码:(注:上图是修改过的)未修改的出现的是:CHARSET=Lati

2018-01-09 17:58:25 204

原创 Python 2.7(64位)安装mysql数据库

1、下载mysqldb源码,https://pypi.python.org/pypi/MySQL-python/1.2.5解压后执行 python setup.py install 提示错误: fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory2、如果出现上述错误,需要安装M

2017-11-21 21:28:41 546

原创 stm32 can中断通信

1、初始化can时钟 void canRCCInit(){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, EN

2017-09-10 22:42:46 10191

原创 I2C模拟通信

1、查看相关介绍I2C通信的资料,读懂I2C时序图。 2、根据时序图写出相应的函数void iicStart(void){ iicSDAOut(); I2C_SDA_H(); I2C_SCL_H(); delay_us(5); I2C_SDA_L(); delay_us(5); I2C_SCL_L();}void iicStop(v

2017-08-23 08:30:38 480

原创 spi测试自发自收(中断通信方式)

1、初始化spi时钟void spiRccinit(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABL

2017-08-13 08:50:37 17360 8

原创 stm32串口通信

stm32串口通信主要是配置相应的参数: 1、初始化串口引脚:void usartGPIOConfigure(void) {GPIO_InitTypeDef gpio_init;gpio_init.GPIO_Pin = GPIO_Pin_9; // TXgpio_init.GPIO_Speed = GPIO_Speed_50MHz;gpio_init.GPIO_M

2017-08-09 08:08:34 432

原创 Linux下配置nfs服务器

1、首先判断Linux上是否安装nfs服务,通过rpcinfo -p来查看: 如果不存在,则执行下列命令安装nfs sudo apt-get install nfs-common nfs-kernel-server sudo apt-get install portmap 2、启动nfs服务 sudo service rpcbind start 通过ps ax | grep

2017-08-01 15:53:56 532

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除