
Qt
文章平均质量分 52
奋斗Andy
努力不一定成功,成功离不开努力!
展开
-
Qt常用事件汇总
一个事件由一个特定的 QEvent 子类来表示,但是有时一个事件又包含多个事件类型,比如鼠标事件又可以分为鼠标按下、双击和移动等多种操作。这些事件类型都由 QEvent 类的枚举型 QEvent::Type 来表示,其中包含了 一百多种事件类型,可以在 QEvent 类的帮助文档中查看。虽然 QEvent 的子类可以表示一个事件,但是却不能用来处理事件,那么应该怎样来处理一个事件呢?在 QCoreApplication 类的notify()函数的帮助文档处给出了5种处理事件的方法:方法一:重新实现部件的原创 2021-05-06 15:39:47 · 1488 阅读 · 0 评论 -
自定义QLineEdit支持文件拖拽显示文件路径
#pragma once#include <QtWidgets/Qwidget>#include <QLineEdit>#include <QDropEvent>#include <QMimeData>#include <QDragEnterEvent>class CustomLineEdit : public QLineEdit{ Q_OBJECTpublic: CustomLineEdit(QWidget *pare.原创 2021-01-16 10:29:20 · 1844 阅读 · 0 评论 -
Qt控件简单介绍
概述:Qt可分为QCheckBox、QPushButton、和QListView、QCalendarWidget等基础控件,QPushButtonGroup、QCroupBox等同属性的组合控件,以及抽象控件三大类。下来来大致介绍下每一类控件的成员。(这里主要讲解下每个控件,具体控件长什么样,可以到designer中 搜索查看,这里就不一一列出图来了!)基础控件:QCheckB原创 2016-11-11 15:47:10 · 9645 阅读 · 1 评论 -
Qt中自定义MessageBox提示框
概述:在做项目时,我们经常会用到QMessageBox这个控件,但有时候Qt自己提供的不能满足我们项目的需求,于是打算用自己定义的MessageBox。下面是自己定义的一个消息提示框的控件类,有什么不对的地方,希望大家一起交流!头文件:/** * @brief 自定义MessageBox * @file custommessagebox.h *原创 2016-11-18 11:47:35 · 9304 阅读 · 0 评论 -
QSignalMapper的简单使用
情景分析:在QT编程中,如果遇到多个相同控件,但是他们的槽大致相同,这个该怎么处理?比如10个button,难道要写10个槽?其实我们可以不必这样,QSignalMapper可以帮组我们解决问题。解决方案:1 首先创建控件,然后每一个button控件都与QSignalMapper 建立信号与槽函数,然后在通过QSignalMapper 对象与类对象建立信号与槽即可,我们原创 2016-09-29 15:28:22 · 836 阅读 · 0 评论 -
Qt国际化方法与国际化不完全问题小结
概述 最近自己在做项目的时候,由于需要跨平台,防止代码乱码,需要把项目中那些中文字都用英文代替,然后翻译成需要的语言。但是在我按照Qt国际化的步骤后,总是有的汉化成功了,有的却没有成功,因此小结一下。QT国际化的步骤:1 把自己需要翻译的地方全部用tr("")函数包含进来。2 在pro文件中加入 TRANSLATIONS += XXX.ts3 使用命令生成XXX.原创 2016-12-07 14:39:33 · 3155 阅读 · 0 评论 -
Qt中断言的使用
错误的处理常用来检查有害的输入数据,断言用来检查代码的的bug,Qt中提供了两个断言的宏Q_ASSERT()和Q_ASSERT_X().下面简单讲述下两个宏的使用:1. Q_ASSERT(bool)例如:// File: div.cpp #include int divide(int a, int b) { Q_ASSERT(b != 0); return原创 2016-12-30 10:00:22 · 3107 阅读 · 0 评论 -
Qt中路径问题小结
在做Qt项目的时候,我们难免遇到到文件路径问题。如QFile file("text.txt")加载不成功、 QPixmap("../text.png") 加载图片不成功等等。今天就来做一个关于Qt路径问题的小结!首先需要弄清楚两个概念:绝对路径与相对路径绝对路径: 文件在硬盘上真正存在的路径。例如“text.jpg”这个图片是存放在硬盘原创 2016-10-16 16:43:02 · 27309 阅读 · 0 评论 -
Qt事件分析
概括:Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.。Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。Qt事件的类型很多, 常见的qt的事件如下:键盘事件: 按键按下和松开.鼠标事件: 鼠标移动,鼠标按键的按下和松开.拖放事件: 用鼠标进行拖放.滚轮事件: 鼠标滚轮滚动.绘屏事件: 重绘屏幕的某些部分.定时事件: 定时器到时.转载 2017-02-18 11:37:49 · 963 阅读 · 0 评论 -
图片与二进制数据的转换
概述:最近在做项目时,遇到要把图片文件转换成二进制数据,然后将数据储存,再读出来,最后显示图片,后期的储存和再次读取都没有什么问题,最大的问题是要确保将图片转换成二进制的数据正确,否则后面的操作就会出错变得没有意义。所以做了以下的例子。示例:头文件(mainwindow.h):/** * @brief 图片转化成二进制数据 * @file ma原创 2017-03-26 11:08:32 · 25487 阅读 · 1 评论 -
数据隐藏之Qt中d指针详解
最近看到代码有用到了Qt中的Q_D指针,就去学习了下,发现真的很好用,因此写一篇文章总结下。//student.hclass CStudent{public: CStudent(); ~CStudent();private: string m_name; int m_age; int m_grade;};如果我们这个类属于一个动态库,那么向外部提供一个dll时,原创 2017-08-25 23:19:37 · 3813 阅读 · 1 评论 -
Qt程序打包发布
概述:我们在开发Qt项目时,难免会遇到程序打包发布的问题。有的时候我们将程序编译生成一个程序,放到别人的电脑上就运行不起来了。这是因为别人的电脑上没有安装开发环境。其实如果我们自己讲生成的可执行程序包换个路径再打开,也许你就运行不了了。提示少了某些库。因此就设计到打包问题。将我们的可执行程序不管发到哪个路径、放到谁的电脑上,都能运行起来。那么该怎么打包程序发布呢?步骤:1原创 2017-08-29 22:10:46 · 1026 阅读 · 1 评论 -
自定义内存检测原理及方案
在项目开发中,或多或少都会遇到一些内存泄露的问题,今天就来总结下检测内存泄露的原理及其方法1 将使用的系统的动态申请/释放内存的函数重新重载实现一遍,如new、delete、malloc、free等等2 创建一个链表来保存申请/释放信息.3 在需要动态申请内存时使用自己重载后的申请函数。申请函数中记录下申请的地址, 内存大小,然后和一些关键属性,如文件名、函数名、函数、行号等等组成一个列表...原创 2018-10-23 19:26:27 · 1277 阅读 · 0 评论 -
Qt程序中动态库的隐式调用
这几天在写程序中时候,用到了一个第三方库。我下载完他的源码编译后,不怎么怎么使用,后来在网上找了找了一些资料查看了一些文档。终于解决了问题!动态库和静态库的介绍在在前的博客:http://blog.youkuaiyun.com/andy_93/article/details/52708678 已经介绍过。现在具体讲讲Windows下和Liux下的使用首先是windows下的使用:准原创 2016-10-20 14:43:38 · 2194 阅读 · 0 评论 -
TCP建立连接和断开连接过程详解
最近在看TCP这块知识的时候对TCP连接三次握手断开四次断开不是很了解,找了下面一片文章讲的很详细,收藏下!原文地址:http://blog.sina.com.cn/s/blog_60a4fcef0101e813.htmlTCP是一个面向连接的服务,面向连接的服务是电话系统服务模式的抽象,每一次完整的数据传输都必须经过建立连接,数据传输和终止连接三个过程,TCP建立转载 2016-10-08 09:22:51 · 6934 阅读 · 0 评论 -
QSS基础知识学习
这几天学习了下QSS空间的美化,以下是一些基础知识的总结!建议QSS的使用步骤:先在Designer里面写QSS,能实时的看到效果,满意后写到qss文件中从文件中读取QSS复制给QString然后应用程序设置样式表,例如: QFile file(":/sourceFile/styleSheet.qss"); file.open(QEODevice::ReadOnly | QI原创 2016-11-09 15:40:52 · 3830 阅读 · 0 评论 -
Qt通过QRegExp类来实现输入的有效性判断与正则表达式的学习
在做项目的过程中我们经常会遇到输入数字、字母这类的问题,有时候需要判断用户输入的信息是否按要求输入,这里就用到了正则表达式,Qt中QRegExp是正则表达式类。QRegExpValidator类是用来检查一个字符串正则表达式。下面使用QRegExp通过一个例子来讲解对输入的整数与小数的判断,然后在介绍下常用的正则表达式!写的不好的地方,还望大家提出来,一起交流!!!#define VALI原创 2016-10-08 22:37:05 · 11960 阅读 · 2 评论 -
Qt中定时器使用的两种方法
Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类。 其精确度一般依赖于操作系统和硬件,但一般支持20ms。下面将分别介绍两种方法来使用定时器。方法一:QObject中的定时器的使用,需要用到三个函数1、 int QObject::startTimer ( int interval ) ; 这个是开原创 2016-10-10 14:30:36 · 60100 阅读 · 1 评论 -
Qt利用QPainter绘制心形以及Qt设置透明窗体的四种方法
在枯燥的编程生活中,有时候也需要自娱自乐,今天就利用Qt的QPainter绘制一颗桃心,虽然不怎么漂亮,但还是挺开心的! 下面是绘制心形的具体实现,一起来看看吧!#ifndef _FLOWER_H_#define _FLOWER_H_#include #include class CFlower : public QMainWindow{ Q_OBJECT publi原创 2016-10-12 22:56:06 · 6045 阅读 · 1 评论 -
Qt信号槽分析总结
注:此文是站在Qt5的角度说的,对于Qt4部分是不适用的。1.先说Qt信号槽的几种连接方式和执行方式。1)Qt信号槽给出了五种连接方式:Qt::AutoConnection0自动连接:默认的方式。信号发出的线程和糟的对象在一个线程的时候相当于:DirectConnection, 如果是在不同线程,则相当于QueuedConnection转载 2016-09-28 10:30:23 · 3054 阅读 · 2 评论 -
QT中PRO文件写法的详细介绍
1. 注释从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。B> lib - 建立一个库的makefile。C> vcapp - 建立一个应用程序的VisualStudio项目转载 2016-09-26 13:48:41 · 3633 阅读 · 0 评论 -
Qt利用QSplashScreen类自定义初始化启动界面
前段时间在做Qt项目的时候需要做一个程序启动界面,于是自己自定义了一个类封装了一下。以下是具体实现,写的不好,有问题还请大神们指出!头文件:SplashScreenMng.h#ifndef SPLASHSCREENMNG_H#define SPLASHSCREENMNG_Hclass QMutex;class QSplashScreen;class QString;cla原创 2016-09-29 11:45:04 · 3852 阅读 · 3 评论 -
Qt父子对象内存管理实现简析
用Qt大家都知道Qt有一套自己的内存管理机制:父子对象管理机制。适用于所有继承于QObject的类。即在一个类中指定他的父对象,可以用void QObject::setParent(QObject * parent)函数指定,也可以在构造时传入参数,一般继承自QObject的类,Qt-c自动生成的类模板的构造函数都是explicit 类名(QObject *parent = 0);这个parent转载 2016-09-28 16:06:01 · 3555 阅读 · 0 评论 -
Qt中QScrollArea的滚动条自动下拉
最近在做一个项目的时候,需要做一个log监视框。我用的是QTextEdit来显示我的log信息,但是发现每次我追加我的内容后QTextEdit中的滚动条没有自动下拉,每次需要自己往下拉,很是麻烦。找了一些资料实现了。今天来总结一下,有不足的地方,麻烦大家指出,一起共同进步!1 创建QTextEdit对象void CustomClass::initTextEdit(){m_pText原创 2016-09-28 10:39:27 · 9481 阅读 · 3 评论 -
关于Qt中的tr()函数讲解
在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr(2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包)(2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包)转载 2016-10-17 10:02:37 · 11871 阅读 · 0 评论 -
Qt中信号与事件的小结
这几天在使用Qt的时候,遇到一些关于信号、事件的一些问题。发现对信号,事件的区别不是很了解。于是上网找了一些资料,做了一点笔记总结下,方便自己也方便他人。要是有不对的地方,还望大家指出,大家一起进步信号:信号不是事件,信号的本质是回调函数,可看做是同步操作 同时信号的发出者是对象,信号不会循环,接收者会立即受到;信号的返回值无意义!事件:事件一般是通过postEvent()函数原创 2016-09-26 15:39:24 · 4467 阅读 · 0 评论 -
QSS学习之Subcontrol(很详细)
普通的 QSS 和 CSS 没什么区别,难度不大,但除此之外,想要使用好 QSS,还必须得掌握好 subcontrol,这个在 CSS 里没有,是 Qt 独有的。什么是 subcontrol?一个复杂的 widget 由多个部分组成,它们可以是一个 widget,也可以是逻辑上的部件,例如 QCheckBox 由 icon 和 text 两个部分组成,不仅可以定义 text 的样式,还可以定义转载 2016-11-09 14:53:16 · 10604 阅读 · 1 评论 -
深刻理解 Meta-Object系统与moc的作用
我们知道Qt 不是使用的“标准的” C++ 语言,而是对其进行了一定程度的“扩展”。这里我们从Qt新增加的关键字就可以看出来:signals、slots 或者 emit。所以有人会觉得 Qt 的程序编译速度慢,这主要是因为在 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这一操作的就是 moc。moc 全称是 Meta-Object Co转载 2016-10-09 09:27:16 · 2805 阅读 · 0 评论