QT
文章平均质量分 62
Burt_Wu
一个努力上进的程序员
展开
-
QT--Connect 第五个参数
发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。多线程环境下一般用这个,这个可以理解成是异步执行,emit语句后的代码将在发出信号后立即被执行,无需等待槽函数执行完毕。,这个可以理解成是同步执行,emit语句后的代码将在所有槽函数执行完毕后被执行。Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,Qt::DirectConnection:槽函数会在信号发送的时候直接被调用,槽函数。原创 2022-11-15 11:11:41 · 908 阅读 · 0 评论 -
QT--知识点(编码、中文乱码)
1、QTextCodec类,该类主要是提供字符串的编码格式切换,主要函数有以下三个:a、QTextCodec::codecForName("xxx") 表示创建一个编码格式为xxx的编解码器,返回一个QTextCodec对象,怎么用呢?比如说我们已知文本的格式为utf-8,但是由于QT以Unicode格式存储,所以需要将utf-8转换为Unicode,那么首先我们第一步要做的就是,创建一个utf-8的编码器。b、toUnicode("xxx"),将xxx字符串通过先前创建的编码器转换成Unicode格式,这原创 2022-06-13 17:36:52 · 1082 阅读 · 0 评论 -
QT----事件循环,阻塞等待一段时间,非阻塞等待一段时间
QT事件循环类QEventLoop, Qt作为一个跨平台的UI框架,其事件循环实现原理, 就是把不同平台的事件循环进行了封装,并提供统一的抽象接口。 Application类中,除去启动参数、版本等相关东西后,关键就是维护了一个QEventLoop,Application的exec就是QEventLoop的exec。不过Application中的这个EventLoop,我们称作“主事件循环”Main EventLoop。一般我们的事件循环都是由exec()来开启的,如下: 这些都开启了事件原创 2022-06-10 17:45:29 · 4845 阅读 · 0 评论 -
QT-——QTimer QMessageBox 线程 主线程 UI之间的联系
大家如果经常开发QT Application程序,肯定会将一些耗时的动作放到线程中,主线程再去做其它的事情,那么就会存在这样的一个问题,线程是否和主线程一样,是否可随意的调用UI?随意的创建类?鉴于这两个问题,请继续往下看。首先说线程吧,我有一篇博客已经介绍了3中使用方式,我在这里只说信号和槽的那种,如果connect的第五个参数设为Qt::DirectConnection则槽函数处于线程中,如果是Qt::QueuedConnection则槽函数处于主线程中,如果该槽函数需要执行一些很耗时的动作,那么就原创 2022-05-17 17:51:05 · 950 阅读 · 0 评论 -
QT----QThread卡UI问题
1、其实UI被卡住的原因很简单,是因为主线程里存在了十分耗时的动作,处理方法有很多,一般为了代码简洁,都会把这些动作写到一个线程中去,即开辟另外一个线程去处理,这样UI就不会卡住了。2、我这里想说的是,关于QThread有几种写法,大家比较常用的都是自己建一个类继承QThread然后重写run函数,这个很推荐使用,因为调用start函数后,就开辟了一个线程;还有一种偷懒的写法,不需要建一个类,只需要把耗时动作和QThread的started()信号绑定即可,但是注意,connect中的第五个参数必须是Q原创 2020-12-21 17:05:05 · 2311 阅读 · 0 评论 -
QT--自定义控件创建
老是忘记,记录一下。一般大一点的QT项目都会分很多个模块,一个主框架肯定是显示窗口的,里面的模块会独立出去给其他人做,那么问题就来了,怎么把别的模块的东西放到主框架里面来?方法就是生成带ui的动态库,然后将主框架中的模块窗口提升成模块类名称即可实现模块集成到主框架中,具体步骤看下面:首先你需要建一个QT Class LIbrary项目,注意需要勾上GUI 和 Widggets模块,然后删除其中除了XXX_global.h以外的所有文件。第二步,建一个名字和Lib项目一样的QT Apllicatio.原创 2020-05-21 10:15:24 · 213 阅读 · 0 评论 -
QT——图标设置
图标无非有三种,一种是可执行的exe图标,一种是运行后窗口的左上角图标,一种是任务栏里面的程序显示的图标。其中后面两个其实设置方法是一样的,通过使用QT提供的 setWindowIcon( const QIcon &icon)即可实现效果,这里需要注意的是QIcon()里面的参数需要是已经添加到程序的资源文件.src中,不然即使你路径是对的程序也识别不出来,至于这个使用对象,经过...原创 2019-09-11 16:15:19 · 580 阅读 · 0 评论 -
QDateTime
一个小知识点,记录一下:通常如果需要获取电脑上得时间,可以用QDateTime::currentTime()来获取返回值,后面的toString操作可以分开也可以不分开:比如QDateTime dt =QDateTime::currentTime().toString("yyyy-MM-dd hh:mm::ss")或者QDateTime dt =QDateTime::currentTime()...原创 2019-09-24 10:04:23 · 509 阅读 · 0 评论