自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_42108501的博客

一点点在进步!

  • 博客(31)
  • 收藏
  • 关注

原创 QML 中调用QFileDialog::getOpenFileName()选取文件后, MouseArea焦点未未释放

当MouseArea控件被按下时,启动定时器,通过延迟10ms的方式让QML与C++之间的阻塞解除,然后再调用异步函数打开文件选择对话框。在QML中调用C++的QFileDialog::getOpenFileName()函数打开文件选择对话框时,如果这个对话框弹出时,有一个MouseArea控件处于焦点状态,但是在文件选择对话框中进行文件选择操作之后,这个MouseArea控件的焦点没有被释放。这是因为在弹出文件选择对话框时,QML与C++之间出现了阻塞,导致无法处理MouseArea控件的焦点释放。

2023-05-06 15:22:33 382 1

原创 QT 获取本地磁盘空间大小

QT获取磁盘空间大小、获取磁盘信息

2023-02-09 18:58:50 2003

原创 Qt程序在UOS系统构建deb包,实现界面安装

本文介绍Qt 程序在uos系统上打包安装问题。实现Qt程序在uos平台界面安装

2023-01-17 16:06:34 2825 1

原创 Qt 应用程序在统信UOS(arm平台)上打包发布

最近在做Qt windows程序在统信uos电脑(arm64)上适配的需求,经过一个多星期的努力,程序可以运行起来,到了打包发布环节,产品经理希望用户可以像windows平台那样,可以一键安装程序,并且桌面生成快捷方式。经过不断地摸索,最后终于实现了,现在把uos平台程序打包发布的过程记录下来,供大家参考!

2023-01-15 17:21:28 2941

原创 QML选择按钮封装

QML 选择控件的封装

2022-11-12 17:19:02 230

原创 QML Text设置显示多行不生效

终于解决Text换行显示不生效的问题啦!

2022-11-07 20:01:36 744

原创 QT头文件加入Q_OBJECT的作用是什么?

在Qt中,QObject是所有Qt类的基类,是Qt对象模型的核心,只有继承了QObject类的类,才具有信号槽的能力。Qt 程序在交由标准编译器编译之前,会使用 moc 分析 C++ 源文件,假设它发现某个头文件中包括了 Q_OBJECT这个宏(注意, moc 只处理头文件中标记了Q_OBJECT的类声明,不会处理 cpp 文件中的类似声明),则会生成另外一个 C++ 源文件,这个源文件里包括了 Q_OBJECT 宏的实现代码,并且文件名称将会是原文件名称前面加上 moc_。

2022-11-05 17:33:08 881

原创 QHash 与 QMap的区别

QMap、QHash的使用,以及两者之间的区别

2022-11-05 15:54:12 1792

原创 C++与QML混合编程——在C++中使用QML对象

上一篇介绍了如果在QML中使用C++对象,接下来我们来看看如何在C++中使用QML对象。我们可以使用QML对象的信号、槽,访问他们的属性,都没有问题,因为很多QML对象对应的类型。原本就是C++类型,比如Image对应QQuickIamge,Text对应QQuickText…但是,这些QML类型对应的C++类型都是私有的,C++代码也不能够直接反问,那怎么办呢?Qt最核心的一个基础特性,就是元对象系统,通过元对象系统,可以查询QObject的某个派生类名,有哪些信号、槽、属性、可调用方法等信息。

2022-10-23 20:19:56 562

原创 C++与QML混合编程——QML中使用C++对象

本文详细描述在QML中使用C++类和对象的前提条件是什么、使用方式有哪些...

2022-10-22 21:36:30 935 4

原创 QML 元素布局

简单介绍QMl几种元素布局的方式

2022-10-22 16:31:22 653

原创 Qt 自定义事件

QT 自定义事件

2022-09-27 22:19:58 426

原创 QEventLoop事件循环的使用

本文介绍QEventLoop的使用场景,已经基本的代码实现

2022-06-09 21:04:45 2410

原创 QT 多线程的实现方法以及GUI线程与其他线程间的通信

GUI线程Qt应用程序exec后就会生成一个线程,这个线程就是主线程,在GUI程序中也称为GUI线程。主线程也是唯一允许创建QApplication或QCoreAppliation对象,比并且可以对创建的对象调用exec()的线程,从而进入事件循环。在只有主线程即单线程的情况中,每一个事件的发生都需要进入事件循环进行等待,如有在某一步计算量比较大,则会一直占用CPU不放,导致其它操作无法完成,界面陷入冻结状态所以,对于计算量大的操作,需要放到一个单独的线程进行计算,然后通过信号槽的方式和GUI线程进行

2021-07-24 15:30:50 5684

原创 QT TableView自定义Model

头文件#ifndef CTICKERDATAMODEL_H#define CTICKERDATAMODEL_H#include <QAbstractTableModel>#include <QObject>#include <QColor>#include <QList>#include <QStringList>#include "CommonInterface/baseconfig.h"#include "dataCente

2021-07-10 16:13:36 718

原创 Qt弹出式窗口、Qt::popup闪退问题、设置窗口无焦点问题

需求根据业务需求,在输入框(QlineEdit)下面做一个模糊查找的弹窗(PopupWidget),当鼠标点击弹窗以外的地方时,这个窗口关闭,当光标在输入框重新输入内容时,再次弹框。实现方法方法一在网上查找到的方法;设置窗口标志位:setWindowFlags(Qt::FramelessWindowHint | Qt::Popup);此方法可以达到弹出式窗口的效果,但是出现了一个致命的问题,但我再次show()这个窗口时(popupWidget),程序会闪退,网上找了很久才找到解决办法。重写

2021-05-22 17:57:57 8581 4

原创 QT QMenu菜单项图标文字对齐问题

问题当菜单项中有的项是带有Icon和文字的,有的字确单单文字,这会出现没有Icon的项文字是和带有Icon项的文字是对齐,我们想要达成的效果是无论有没有Icon,一律都是左对齐,但是QAction中没有提供接口设置文字的对齐方式的。解决方法没有Icon的项改中QWidgetAction://system set QAction* pSysSetting = new QAction(QIcon("://Resources/Dark_icons/custom trade/set_icon.sv

2021-05-22 16:40:59 2330

原创 TableView设置滚动条不显示问题

QTableView 如何设置滚动条?ui->m_tableViewOrder->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);ui->m_tableViewOrder->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);Qt::ScrollBarAsNeeded:当TabelView无法完全显示时,自动出现滚动条,默认是这个Qt::ScrollBarAlwaysOf

2021-04-04 11:04:37 3282

原创 Qt5之 QThread

概述在 Qt 4.4 版本以前的 QThread 类是个抽象类,要想编写多线程代码唯一的做法就是继承 QThread 类,并在 run() 函数中塞入耗时操作代码。可能造成的问题是明明把耗时操作代码放入了新线程,可实际仍在旧线程中运行。但是之后的版本中,Qt 库完善了线程的亲和性以及信号槽机制,我们有了更为优雅的使用线程的方式,即 QObject::moveToThread()。这也是官方推荐的做法。Qt 5 使用线程在Linux中,我们往往把耗时的操作放到一个新的线程中,而在Qt中,为了不破坏类的结

2021-03-27 19:36:33 591

原创 QSplitter实现窗口的自由伸缩(切割窗口)

QSplitter 作用可以实现窗口的分割,在分割处,可以实现窗口的随意拖动,以至于每个窗口的大小可以按照自己需求进行调整。QSplitter 有水平分裂布局和垂直分裂布局两种。代码实现:#include <QHBoxLayout>#include <QSplitter>#include <QTextEdit>int main(int argc, char *argv[]){ QApplication a(argc, argv); QWid

2021-03-16 20:15:44 1218

原创 C++ default、delete、overrride、final声明函数

default:当我们手动创建一个有参构造函数后,编译器不是提供默认的无参构造函数,但是有时候程序中可能会用到,这时候可以使用default声明,让编译器提供默认的构造函数。#include <iostream>using namespace std;class A {public: // A user-defined A(int x){ cout << "This is a parameterized constructor";

2021-03-13 16:46:46 408

原创 C++默认构造函数提供机制

C++的构造函数有:默认构造函数析构函数拷贝构造函数拷贝赋值函数移动构造函数移动赋值函数生成这些特殊成员函数(或不生成)的规则比较复杂,每个特殊成员函数有几种不同的状态:隐式声明还是用户声明默认提供还是用户提供正常状态还是删除状态隐式声明的必然是默认提供的;默认提供的才可能被删除;用户提供的也必然是用户声明的。C++默认构造函数是否提供的情况:如果自定义了一个任意的构造函数,系统将不在提供默认无参构造如果自定了一个构造函数,系统还会提供一个拷贝构造如果自定义

2021-03-13 15:33:02 851

原创 C++新特性之自动类型推断和初始化列表

一 自动类型推导auto:就是编译器能够根据表达式的类型,自动决定变量的类型(从 C++14 开始,还有函数的返回类型),不再需要程序员手工声明([1])。但需要说明的是,auto 并没有改变 C++ 是静态类型语言这一事实——使用 auto 的变量(或函数返回值)的类型仍然是编译时就确定了,只不过编译器能自动帮你填充而已。例1:容器迭代器类型:// vector<int> v;for (vector<int>::iterator it = v.begin(

2021-03-13 14:02:54 484 2

原创 C++各类容器的特点

共同点容器都有开始和结束点容器会记录其状态是否非空容器有大小容器支持交换一、string:使用策略:( 一般不建议在接口中使用 const string&)如果不修改字符串的内容,使用 const string& 或 C++17 的 string_view 作为参数类型。后者是最理想的情况,因为即使在只有 C 字符串的情况,也不会引发不必要的内存复制。如果需要在函数内修改字符串内容、但不影响调用者的该字符串,使用 string 作为参数类型(自动拷贝)。如果需要改变调

2021-03-07 15:22:00 718

原创 移动构造函数与拷贝构造函数

一、移动构造函数:定义:所谓移动语义,指的就是以移动而非深拷贝的方式初始化含有指针成员的类对象。简单的理解,移动语义指的就是将其他对象(通常是临时对象)拥有的内存资源“移为已用”。优点:提高执行效率,减少临时变量资源的申请和释放。事实上,对于程序执行过程中产生的临时对象,往往只用于传递数据(没有其它的用处),并且会很快会被销毁。因此在使用临时对象初始化新对象时,我们可以将其包含的指针成员指向的内存资源直接移给新对象所有,无需再新拷贝一份,这大大提高了初始化的执行效率。函数参数:右值引用非 co

2021-03-07 11:19:28 4264

原创 C++左值与右值

一、左值与右值的定义: - 一个 lvalue 是通常可以放在等号左边的表达式,左值 - 一个 rvalue 是通常只能放在等号右边的表达式,右值 - 一个 glvalue 是 generalized lvalue,广义左值 - 一个 xvalue 是 expiring lvalue,将亡值 - 一个 prvalue 是 pure rvalue,纯右值 左值 lvalue 是有标识符、可以取地址的表达式,最常见的情况有:变量、函数或数据成员的名字返回左值引用的表达式,如 ++x、x =

2021-03-07 11:06:57 7292

原创 数值和千分位的转换

/*功能:将数值格式化成千分位输出输入:number 要转换的数值 splitLen 小数点前分割的长度 pointLen 小数点后保留多少位输出:dstr: 转换后的字符串返回值:void**/void* formatNumber(double number,int splitLen,int pointLen,char *dstr){ char srcbuf[64]=""; char tmpbuf[64]=""; int i = 0; i

2020-09-26 15:01:35 709

原创 C 全面详细的时间格式化

C语言时间格式化输出int main (){ time_t rawtime; struct tm * timeinfo; char buffer [128]; time (&rawtime); printf("%ld\n", rawtime); timeinfo = localtime (&rawtime); strftime (buffer,sizeof(buffer),"Now is %Y/%m/%d %H:%M:%S",timeinfo); printf("%s

2020-09-26 14:42:53 1969

原创 QT编码转换

UTF-8 转GB2312 部分乱码最近在做一个国外的项目,其中有一个需求是,管理系统给Linux 终端推送通知的功能,管理系统给终端发送通知的编码是UTF-8的,QT界面上展示通知的同样要求UTF-8 ,所有这没有一点毛病啊,但是突然测试给我提了一个bug,在打印出来的通知中是乱码的。我想着,这个问题不大,因为打印机需要的是GB2312编码的,我转一下不就完事了 QTextCodec* utf8Codec= QTextCodec::codecForName("utf-8"); QTextCode

2020-09-26 14:23:24 669

原创 QML 日历控件

qml 日历Calendarimport QtQuick 2.0import QtQuick.Controls 1.4import QtQuick.Controls.Styles 1.4import QtQml 2.2import QtQuick.Controls 1.4import QtQuick.Layouts 1.3Rectangle{ width: 300 height: 300 border.width: 1 property alias calen

2020-09-26 14:02:38 952

原创 FC22录屏工具

Linux FC22 屏幕录制工具在Linux系统中有很多优秀的屏幕的录制工具,比如:1.SimpleScreenRecorderSimpleScreenRecorder是一个应用程序,使您可以记录其他的应用程序和你的屏幕上运行的游戏。这是一个简单但功能强大,功能丰富的屏幕记录软件,包括一个易于使用的界面。安装和使用阅读: http://www.tecmint.com/screencasting-with-simple-screen-recorder-in-linux它的一些显著特点包括:基于Q

2020-09-26 13:48:41 10914

空空如也

空空如也

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

TA关注的人

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