
Qt入门
未*望
一个简单的软件工程师
展开
-
《Qt入门 (十)--QTableview 多线程操作model问题记录》
QTableview 多线程操作model问题记录背景一、在主线程中设置QStandardItemModel二、在子线程操作model、主线程显示背景在使用Qtableview 读写数据库时,因为操作数据文件在子线程操作,但是显示却在主线程,又想实现实时刷新数据的显示效果,这中间遇到几个问题记录一下。一、在主线程中设置QStandardItemModel m_model = new QStandardItemModel(); m_model->setHorizontalHead原创 2020-12-05 15:15:07 · 4073 阅读 · 11 评论 -
《Qt入门 (九)--QtJSON读取中文出现的问题》
QtJSON读取中文出现的问题背景源码问题一(中文转义)问题二(读取方式)测试结论背景使用Qt自带的api读取JSON 文件,由于为了方便一些文件的配置,让普通人也能配置文件,所以想让JSON的文件使用中文的Key来显示,但是暂时没实现该功能,记录一下遇到的几个问题。源码啥都不说先贴源码mdljsconfig.h 的头文件#ifndef MDLJSCONFIG_H#define MDLJSCONFIG_H#include <QVariantMap>#include <Q原创 2020-09-18 11:59:51 · 1549 阅读 · 0 评论 -
《Qt入门 (六)--使用QMetaObject创建工厂模式》
一、背景由于需求需要,需要从配置文件里通过配置文件创建对应的类。后续查了一下,可以使用元对象来达到使用QString 来创建类主要功能,通过QMetaObject可以只需要插入类名就可以做一个基础的映射最后通过map来做一个for循环创建对于上百个类来说比较符合场景实际是QMetaObject自带newInstance()来实现工厂模式的类的创建这边需要注意的是QMetaObject 的newInstance()是需要用Q_INVOKABLE来修饰构造函数的工厂模式无非就是在工厂里达到创建类的效果原创 2020-08-28 08:26:29 · 1252 阅读 · 1 评论 -
《Qt入门(五)QT5.13 + MySql8.0 环境搭建》
QT5.13 + MySql8.0 环境搭建一、源码选择安装二、MySQL8.0.21安装三、编译驱动四、拷贝四、测试前言:确保已经安装完成Qt源码,否则无法操作查看Qt安装目录下是否存在Src文件,不存在请重装QT并且勾选源码选项如下图所示一、源码选择安装二、MySQL8.0.21安装2.1 我这边是64位系统所以下载64位安装包下载地址:https://dev.mysql.com/downloads/mysql/下载完安装包解压出来,本人是解压在Qt目录下,然后在解压的C:\Qt\m原创 2020-08-27 13:45:29 · 430 阅读 · 0 评论 -
《Qt入门(三)-- pro文件集合windeployqt打包方法》
使用QtCreater编译完自动打包软件的依赖背景一 、pro文件设置配置2、遇到的问题背景网上介绍Qt 打包发布时,传统的操作步骤如下1、 拷贝release文件下的xxx.exe文件到单独的目录中2 、使用msvc工具进入文件目录执行windeployqt xxx.exe 3 、双击运行xxx.exe这种打包方式也没啥问题,但刚好遇到更简便的方法,顺便记录一下一 、pro文件设置配置创建个pri文件,然后在里面填写上如下代码,再到pro文件里面设置一下,就可以在编译后,直接打包,不用再自原创 2020-07-31 09:37:35 · 706 阅读 · 1 评论 -
《Qt入门(七)-- 单例模式》
背景确保类对象只被初始化一次,类成员具有全局唯一性,如全局变量共享,一些统一的工具函数共享。通过静态公有方法获取对象实例,能够提供一个访问类对象的全局指针单例模式在我们开发中经常会用到的,单例模式有两种,分为懒汉模式和饿汉模式,这两种各有各的用法。一、单例设计模式懒汉式在类加载时不初始化,延迟加载。(配置文件)懒汉式需要加synchronized,否则不安全。这边使用原子指针的方式...原创 2020-05-07 10:13:45 · 386 阅读 · 0 评论 -
《Qt入门(八)-- Qt多线程movetothread使用》
Qt多线程使用背景一、继承QThread的run函数二、使用movetothread;背景熟知Qt有两种多线程的方法,一、继承QThread的run函数;二、继承于QObject的类,用moveToThread函数转移到一个Thread里。Qt4.8之前使用继承QThread的run这种方法,Qt4.8之后,Qt官方建议使用第二种方法。一、继承QThread的run函数socketI...原创 2020-04-30 11:40:20 · 894 阅读 · 1 评论 -
《Qt入门(四)-- Qt动态布局QGridLayout》
QGridLayout 添加窗口addWidget函数初始化布局依次是从左往右添加第0行,第0列 ;第0行,第1列;第1行,第0列;第1行,第1列;然后依次对setRowStretch设置行比例参数(4:1),setColumnStretch设置列比例(2:1) QFramlayout = new QGridLayout(); QFramlayout->setSpaci...原创 2020-02-25 14:01:36 · 3360 阅读 · 0 评论 -
Qt常见错误消除
1、问题描述:点击编译后无出错,无法运行解决方案: 1、查看是否路径出现中文;2、查看项目-》构建的的配置是否正常2、问题描述:源文件出现编码不符/Qt 出现“{”: 缺少函数标题(是否是老式的形式表?)解决方案: 用txt打开重新另存为utf-8格式3、 Qt编译时遇到“未声明的标识符”问题解决方案: 用txt打开重新另存为utf-8格式 声明该变量的文件(.h文件或.c文件)记事本打...原创 2020-02-24 17:24:16 · 1638 阅读 · 0 评论 -
《Qt入门(二)-- Qt应用程序和软件发布添加添加图标》
图标的类型在qt应用程序中,我们能想到的图标一般就以下三种:应用窗口左上角的 图标状态栏上显示的图标可执行程序本身的图标一.我们先讨论窗口左上角的图标和状态栏的图标 这两种图标只需要设置一次就可以了,他们总是相同的,并没有专门针对状态栏图标设置的函数。方法一:添加状态栏上显示的图标1、只需要在.pro中添加:RC_ICONS = kedeico.ic...原创 2020-02-24 17:16:45 · 240 阅读 · 0 评论 -
《Qt入门(一)-- Qt 版本5.12 VS2017 WIndows10 版本编译软件在Windows7下发布》
背景:Qt 版本5.12 VS2017 WIndows10 版本编译软件在Windows7下发布,出现卡顿问题。 由于windows10下编译的文件会有带一些库,windows7下又不存在这些库,或者名字产生更改,导致软件运行出现各种问题。介绍一下我所使用的打包工具。一个是QT5自带的windeployqt( 不需要下载安装),另外一个是Engima Virtual Box,这是下载链接En...原创 2019-07-29 14:55:26 · 1237 阅读 · 1 评论