
Qt
麦克·唐
此人不懒,但就是什么都不写
展开
-
QT中的D指针和Q指针
D指针和Q指针实际上是类的成员指针变量,分别指向一个私有类(通常称为Private类)对象和一个公有类对象。这种设计模式的核心是将类的实现细节与接口分离,从而减少编译依赖,提高代码的灵活性和可维护性。原创 2024-10-20 23:04:57 · 670 阅读 · 0 评论 -
QSetting缓存机制的坑
在工作中遇到这么一个问题,使用QSetting打开配置文件后,更新覆盖了一下被打开的文件,结果读取出来的内容还是原先的内容。查了一下博客,发现QSetting是缓存在内存中的,再次打开是直接从内存中打开。...原创 2021-01-04 16:13:33 · 707 阅读 · 0 评论 -
Windows,Unix,MacOs系统下文本文件的转换
经常遇到各个系统下的文件拷贝来拷贝去,看着没问题,也不乱码,但是一编译或者一执行就出问题,你可能得看看这篇文章了。首先,用notepad++打开一个文件。它应该是这样的。紧接着,视图->显示符号->显示所有字符,它就变成了这样。这就是问题所在了,接下来,编辑->文档格式转换->转换为Unix。它就变成了这样。明白问题所在了吧,就是这个换行符的问题。...原创 2020-09-29 13:46:59 · 1079 阅读 · 0 评论 -
新的单例模式,std::call_once C++11新特性
通过C++11新特性std::call_once 来调用某个函数,只能成功调用一次,调用成功后再次调用不会执行,调用失败再次调用还会执行。用来调用某个单例的初始化函数比较合适,而且对于线程是安全的。...原创 2020-09-17 16:37:14 · 329 阅读 · 0 评论 -
Qt项目中引用的公共代码,通过宏定义匹配代码块
在一些大型项目中会存在一些公共代码,但在这些公共代码中又需要根据引用的具体项目去实现一些特定的代码,这时候一般是通过宏定义的方式去判断目前所引用代码的项目是哪个项目,来决定某些代码是否生效。#ifdef PROJECT_A//A需要生效的代码#else if PROJECT_B//B需要生效的代码#endif通过这种方式能够进行区分,上面写的PROJECT_A,PROJECT_B是在项目pro文件中进行定义的DEFINES += ROLE_STUDENT...原创 2020-09-17 16:29:44 · 371 阅读 · 0 评论 -
Qt配置项目编码格式
Qt中pro文件配置编码格式:msvc:QMAKE_CXXFLAGS += -charset:utf-8pro中变量含义:https://www.cnblogs.com/senior-engineer/p/8469297.html原创 2020-09-17 12:26:16 · 1370 阅读 · 1 评论 -
Qt下的国际化方法—翻译文件(.ts .qm文件)的使用
1.获取所需翻译的文本在代码中需要翻译的文本的都需要用下面的方式使用 tr() 括起来。//创建菜单子项 manageAction = new QAction(tr("vehicle management"),this); chartAction = new QAction(tr("Sales statistics"),this); quitAction = ne...原创 2019-01-07 17:03:42 · 17951 阅读 · 7 评论 -
QT项目日记——使用QSetting区分导入的文件是否符合要求(不是区分后缀名)
1.需求 由于设备的不同,需要在导入文件的时候,区分文件是否和设备匹配。 PS:设备编号已经获取到,能够直接使用。2.需求分析 通常导入文件的时候需要区分的只是文件的后缀名,至于文件的内容则是在使用的时候进行检查。 但是这次是需要在导入文件的过程中,进行对文件内容的检查,并获取其中的某个字段,跟设备类型进行匹配。 PS:文件内容为键值对类型,所以...原创 2018-12-24 17:28:50 · 500 阅读 · 0 评论 -
QT下欢迎页面的自动跳转——事件过滤器(eventFilter)和定时器的应用
1.练习背景 这次的练习也是项目当中实际要用到的一个功能,就是所谓的欢迎界面。 在现在大多数客户端程序中呢,欢迎界面能够起到很大的作用,不只是字面的欢迎,还可以提示一些注意事项,或者是展示跟自家公司相关的广告或产品。 本次练习呢,不涉及页面的展示内容,只是去实现一个欢迎页面自动跳转的功能。2.所用技术点 实现欢迎页面除了常用的一些信号,窗口类的常用操作之...原创 2018-12-27 12:13:25 · 1141 阅读 · 1 评论 -
Qt下的Tcp协议练习——客户端
上一篇文章记录了本次聊天室项目服务端的实现过程和主要代码,本篇文章将记录客户端的实现过程和主要代码。至于Tcp的原理,上篇文章已经提到过了,所以在这里就不多啰嗦了。还是一样的套路,上来先初始化控件对象和设置布局,这些都不是重点,可以自己随意布局。 //设置窗口标题 setWindowTitle(tr("TCP Client")); //初始化控件对象 c...原创 2018-12-14 17:16:22 · 322 阅读 · 0 评论 -
Qt下的自定义控件——通过继承QComboBox并重写event来实现想要的效果
1.需求 在项目当中呢,需要做一个根据QComboBox的子项显示相应数据的功能,这个很简单,通过QComboBox自有的activated信号就能解决。但是呢,又需要在切换QComboBox子项时,把当前子项相关的那部分数据记录下来,否则切换一次子项再切换回来之前修改的数据就白做了。2.需求分析 首先一点,这个需求呢,是想要在你切换子项这个动作发生或者将要发生的时候,...原创 2018-12-20 13:29:19 · 5091 阅读 · 2 评论 -
Qt下的Tcp协议练习——服务端
1.Tcp协议的原理Tcp协议是一种可靠、面向连接、面向数据流的传输协议,适合数据的连续传输。Tcp协议能够确保一台计算机发出的数据无差错的传输给网络上的其他计算机,但是在传输数据前,必须建立连接(三次握手)。2.传输过程首先,服务端和客户端通过三次握手建立连接。然后,客户端向服务端发送一个请求,服务端处理这个请求,并向客户端返回一个响应,这个过程会一直持续。直到客户端为服...原创 2018-12-14 09:52:08 · 499 阅读 · 0 评论 -
Qt下的Udp协议练习
1.UDP的工作原理客户端向服务端发送一段请求报文,报文大小与各个系统的协议实现有关,但不能超过下层IP协议规定的64KB;服务端同样以报文的形式作出相应,如果服务端没有收到请求,则不会作出回应,客户端也不会重新发送,所以报文传输的可靠性不高。2. 实例服务端: port=5555;//设置UDP的端口,服务端定时向此端口发送广播 udpSocket = new...原创 2018-12-13 13:46:57 · 1119 阅读 · 1 评论