Qt基础知识
文章平均质量分 51
三公子Tjq
三少爷的剑:剑气纵横三万里,一剑光寒十九洲!
展开
-
Qt5自定义状态栏QStatusBar外观(背景)和状态栏基本用法(显示普通消息、临时消息、永久消息)
本文主要总结Qt状态栏QSatatuBar用法,通过继承状态栏,自定义状态栏背景图形,以及状态栏三种基本用法。状态栏类QStatusBar主要有显示普通消息、显示定时消息、显示永久消息三种功能。三种都十分常用,下面先总结自定义状态栏外观用法和将状态栏三种用法进行详细讲解和代码编写。一、自定义状态栏外观1.1原理详解状态栏类QStatusBar继承于QWidget,我们继承QStat...原创 2019-10-19 22:43:02 · 9169 阅读 · 3 评论 -
Qt 2D绘图函数QPainter类基本用法(绘制图片、直线、填充颜色的矩形)(自定义QWidget边框和任意形状)
Qt中绘制2D图形最核心的一个类是QPainter。类QPainter是在设备类QPaintDevice上绘制几何图形(包括直线、曲线、圆形、弧形、矩形等等),其中设备类QPaintDevice的子类又有QWidget、QImage、QPictrue、QPixmap、QOpenGLPaintDevice等,也即是说,我们可以继承这些类,通过重写QPaintEvent事件进行重绘,或者用事件过滤器捕...原创 2019-10-19 00:33:00 · 25209 阅读 · 0 评论 -
Qt获取QWidget实时窗口大小和其余窗口实时信息(最大化、拉伸、缩放、QWidget::rect())
Qt中,获取实时窗口,可以用函数QWidget::rect();inline QRect QWidget::rect() const{ return QRect(0,0,data->crect.width(),data->crect.height()); }由QRect定义可知,QRect QWidget::rect()函数是通过data对象返回窗口QWidget大小参数的...原创 2019-10-18 23:18:52 · 9454 阅读 · 0 评论 -
Qt不用布局类挂载(增加)界面控件和显示界面控件的基本原理和示例代码(setGeometry()、QPushButton)
很久以前学QT时,经常按照例子打了,发现显示不了控件。这是因为图形控件都是从QWidget继承而来,而QWidget是一个基本界面,要显示的话,需要调用其槽函数show()。当我们不用布局类时,用这种方式可以直接显示界面控件。但是,有时会出现用了show()槽函数,也会不显示控件的情况。为什么会这样呢?这是因为我们没有设置控件初始大小,系统默认宽高为0,所以显示不出来,只需要设置控件大小即可,用函...原创 2019-10-18 19:41:56 · 2421 阅读 · 0 评论 -
QtCreator中删除Other Files整个文件夹方法
1.1问题出现用QtCreator集成IDE,添加资源文件时,常常误操作,导致工程中添加了很没用的资源或者文件,这时用鼠标操作只能一个个删除这些图片或者文件,无法整个删除。如下图所示:1.2解决办法要想批量删除,甚至整个删除这些图片或者文件资源,可以在*.pro工程文件中进行删除。比如要删除Other Files整个目录,则在*.pro文件中找到“DISTFILES +=” ,把...原创 2019-10-18 10:26:18 · 6008 阅读 · 1 评论 -
QPushbutton设置按钮文字位置(文本对齐方式)和左右上边框线型和颜色
1.1 QPushbutton中,设置按钮内容text可用QSS设置,QSS代码为:text-align:bottom;结合设置按钮大小和背景图标大小,可以设置上面图标下面文字,中间间距可以任意调整效果。1.2设置按钮上面、左边、右边边框线型和颜色"#QCustomButton,QLabel{background:transparent;border:0px;color:...原创 2019-10-12 16:26:53 · 21638 阅读 · 1 评论 -
Qt5.9基本登录对话框制作
本文主要介绍用Qt5.9制作登录对话框,该对话框的功能是点击登录按钮后,关闭当前页面,然后弹出主对话框。具体的制作步骤如下所示:1.1创建一个widget工程,在文件工程右键,选择【添加新文件】,如下图所示: 1.2【文件和类】选择【Qt】和【Qt设计师界面】 1.3【template\forms】选择【Dialog without Buttons】,然后单击【原创 2017-12-18 21:13:44 · 1470 阅读 · 0 评论 -
Qt5.9中int转QString用法(函数QString::number)
在Qt5.9Creator4.4.1编译环境中,int变量转QString变量的一个方法是用QString::number函数来转换,具体的用法如下所示:1.1QString::number示例用法quint32 MAC = 255;QString Mac1 = QString::number(MAC,10);//第一个参数为int变量,第二个参数10表示转换为10进制数QMe原创 2018-01-02 21:03:38 · 16956 阅读 · 1 评论 -
Qt5.9中QMessageBox输出变量的用法(或者是字符串添加变量的方法):tr("%1").arg(variable)
本文主要总结在Qt5.9的Creator4.4.1中,在弹出框QMessageBox中输出变量的方法之一tr("%1").arg(variable),具体的示例如下所示:str=tr("这是变量");QMessageBox::warning(this, tr("查找"), tr("找不到%1").arg(str));其中%1为占位符,QMessageBox显示时,a原创 2018-01-02 21:22:53 · 7507 阅读 · 0 评论 -
Qt5.9中QPainter类用法
本文主要总结QPainter类的用法,主要以代码和注释讲解为主。通过讲解两个例子来熟悉QPainter类的用法。第一个例子是用两个点绘制一条线段,用画笔和画刷绘制一个红色边框矩形,矩形里面填充绿色。第二个例子是绘制矩形表格和弧线点画线,具体的步骤如下所述:一、新建一个widget工程,基类为QWidget,在Widget.h头文件中,添加入下代码:二、在widget原创 2018-01-11 20:12:25 · 2659 阅读 · 0 评论 -
QString转QByteArray,两个QString相加用法示例
QString转QByteArray,只要用函数toLatin1()函数就行,具体的用下如下所示:参考内容:http://blog.csdn.net/ymc0329/article/details/7284514http://blog.csdn.net/aizhaoyu/article/details/18259677原创 2018-01-11 11:47:57 · 2737 阅读 · 0 评论 -
Qt5.9中线性渐变QLinearGradient类,辐射渐变QRadialGradient类,锥形渐变QConicalGradient类用法
本文主要总结Qt5.9Creator中,线性渐变QLinearGradient类,辐射渐变QRadialGradient类,锥形渐变QConicalGradient类的用法,本文章主要以实际的代码和注释讲解为主。一、线性渐变QLinearGradient类用法线性渐变QLinearGradient类主要通过添加画刷,进行绘制渐变图画。下面将通过一个实例在熟悉QLinearGradi原创 2018-01-12 21:19:38 · 1133 阅读 · 0 评论 -
Qt5.9生成dll详细图文教程
本文主要总结了用Library工程生成一个可调用的dll的详细图文教程,具体内容如下所示:1.1首先创建一个lib工程,如下图所示: 1.2将类名改为CreateLibs,如下所示,接着选择默认的, 1.3创建完成后,生成一个带global的头文件和一个CreateLibs类。双击打开带global的头文件,如原创 2017-12-28 20:38:00 · 13649 阅读 · 5 评论 -
Qt5.9调用dll方法(静态法+dll+头文件)
本文主要总结Qt5.9静态调用dll的方法,调用的dll文件中,有一个dll文件,一个头文件。dll文件里面封装了函数,头文件提供调用接口,具体的教程如下文所述。1.1新建一个widgets界面工程,基类是MainWindow。然后点击重新构建,生成可行性文件.exe,如下图所示: 1.2将刚刚生成的dll文件,放入.exe可行性文件所在文件夹,如下图所原创 2017-12-28 21:05:09 · 5049 阅读 · 0 评论 -
Qt5.9中在Pixmap图片设备上绘制线段实例
本文主要总结在Qt5.9中的Pixmap图片设备上绘制线段,具体的实例如下代码所示:1.1新建一个Widget工程,基类选择为Dialog,在dialog.h头文件中,添加如下代码:1.2在dialog.cpp源文件中的paintEvent(QPaintEvent *),添加如下代码:1.3程序构建运行的结果,如下图所示:由上图结果可原创 2018-01-22 20:49:20 · 4203 阅读 · 0 评论 -
用Qt5.9Creator获取鼠标位置和用键盘移动按钮例子
本文主要总结了一个用Qt5.9Creator获取鼠标的位置和用键盘移动按钮的例子,该例子的具体功能是:按下鼠标时按钮会显示当前鼠标位置;按下鼠标不放移动时,labal标签会显示鼠标实时位置;分别按下键盘的W,S,A,D键时,按钮向上,下,左,右移动10ms距离。该例子的具体实现过程如下所述。一、原理详解按下鼠标和按下键盘等都是一个事件。事件是对各种应用程序需要知道的由应用程序外部(原创 2018-01-05 21:16:07 · 2285 阅读 · 0 评论 -
Qt5.9的QListWidget控件用法(设计者模式)
本文章主要总结Qt5.9中的listWidget控件的用法。该用法包括在ui界面上添加列表内容和用代码添加列表内容,然后单击第一行内容后,触发单击列表事件,在lineText编辑框中显示单击列表的行号(比如单击列表的第0行,则显示行号为0)。具体编写步骤如下所述。1.1新建一个Widget工程,基类选择QWidget。在ui界面上拖入一个ListWidget控件和一个lineText控件...原创 2018-01-06 14:27:54 · 39854 阅读 · 4 评论 -
Qt5.9绘制文字(QPainter类,drawText函数)用法
本文章主要总结用Qt5.9Creator代码编写一个红色字体的文本框,该文本框可以旋转90,通过该实例,进一步熟悉QPainter类和drawText()函数的用法。该实例中,用到了字体设置类QFont用法。QFont类的对象可以对字体的颜色,字体大小,样式(下划线,居中对齐)等进行设置,具体的步骤如下所述:1.1新建一个Widget工程,基类选择为QWidget。在Widget.h头原创 2018-01-15 20:40:01 · 52231 阅读 · 2 评论 -
Qt5.9Creator内存不足,出现程序卡死,提示:.exe程序已停止工作
本文主要总结在Qt5.9Creator编译器下,由于指针变量创建的内存不足,出现程序卡死的问题和解决办法。1.1程序出现的错误提示:.exe程序已停止工作我创建了一个整形变量的指针*a(int *a = new int;),我需要用指针变量*a存储16个组数组,但是程序一执行到指针变量*a这里,就会出现错误,错误提示为::.exe程序已停止工作,具体如下图所示:指针内存不足原创 2018-01-15 20:51:11 · 3002 阅读 · 0 评论 -
Qt5.9用鼠标在空白画布上画曲线实例
本文主要总结用Qt5.9Creator编写一个程序。该程序的功能是可以在空白的界面上用鼠标随意画曲线和放大按钮可以将画布放大两倍。这个例子主要用到了QMouseEvent类,QPushButton类。其中QMouseEvent类用到了鼠标按下事件函数(mousePressEvent(QMouseEvent *event)),鼠标移动事件函数(mouseMoveEvent(QMouseE原创 2018-01-23 21:39:53 · 3196 阅读 · 1 评论 -
Qt5.9中定时器和随机数用法
本文章主要总结定时器的用法和随机数的用法。具体的是用一个实例,来熟悉定时器和随机数用法。该例子是在一个labal标签中每隔一秒显示一个0-9的随机数据;另一个标签是每隔一秒更新一次内容,一直显示hellow world!;编辑框每隔一秒移动一次位置,移动时的位置x坐标和y坐标在0,300范围内随机取值,也就是编辑框在一个特定的范围内每隔一秒随机出现。具体的步骤如下所述:1.1新建一个w原创 2018-01-08 21:54:15 · 1556 阅读 · 0 评论 -
(转载)QT中QString 类的使用(截取QString字符串中间的任意长度字符串)
转载原文地址:http://blog.csdn.net/sbisyju/article/details/8797127QString 类中各函数的作用。一、字符串连接函数。1、QString也重载的+和+=运算符。这两个运算符可以把两个字符串连接到一起。 2、QString的append()函数则提供了类似的操作,例如: str = "User: ";转载 2018-01-16 17:52:15 · 14879 阅读 · 0 评论 -
Qt5.9中QObject::connect()函数用法(函数使用的前提条件和参数详解)
本文章主要总结Qt5.9中QObject::connect()函数的用法,全文分为两大部分,第一部分讲解connect函数使用的前提条件,第二部分讲解connect函数各个参数详解和具体的用法实例。一、首先需要注意的是,connect()函数有且只能在QObject类里面和QObject派生类里面使用,自己新建的类里面(基类不是QObject类和其QObject派生类)使用connec原创 2018-01-30 21:48:57 · 62550 阅读 · 6 评论 -
Qt5.9Creator中,使用信号与槽机制connect()函数时,出现错误提示:'QObject' is an inaccessible base of 'ClassA'
本文章主要描述了在Qt5.9Creator中,使用信号与槽机制connect()函数时,出现的错误和该错误的解决办法,具体的内容如下所述。1.1我在使用connect()函数,当已经再三确认申明的信号和槽函数的用法是正确的,同时确认该类满足调用connect函数的条件(connect()函数正确用法和调用前提条件可以参考我之前写的一篇博客:http://blog.csdn.net/原创 2018-02-01 10:09:10 · 10909 阅读 · 3 评论 -
Qt5.9Creator中自定义信号SIGNAL和在另一个类中用该信号触发槽函数用法
本文章主要总结在Qt5.9Creator中自定义一个信号,然后在另一个类里面用该信号触发槽函数的实例。具体的实例是在类ClassA中自定义一个信号Signal1,然后在MAinWindows类中用该信号Signal1来触发槽函数SlotFunction()的调用。注意:1.使用信号与槽机制,一定要是QObject类和QObject派生类才有效,否则该机制是无效的。2.使用信号与槽机制时,需要在类的...原创 2018-01-31 21:07:16 · 31799 阅读 · 12 评论 -
Qt5.9Creator在程序每次启动时产生唯一ID码(QUuid类)(C/C++代码实现)
本文主要总结用Qt5.9Creator编写的程序,用QUuid类实现在每次启动时,理论上会产生一个用户唯一的ID码。这个ID码1秒钟可以产生1亿个不同的ID,所以理论上可以认为是唯一的。在Qt5.9中,实现该需求很简单,先实例一个QUuid类的对象,然后调用该对象的成员函数createUuid(),最后将该QUuid码转到字符串(用toString()函数)就可以实现了,下面将用Qt5.9Crea原创 2018-01-17 11:17:38 · 2688 阅读 · 0 评论 -
Qt5.9Creator中出现qDebug输出函数失效(错误:Cannot retrieve debugging output。)
我在编译Qt5.9程序时,想要通过qDebug函数的输出进行调试。但是程序编译后,qDebug函数失效,控制台的编译没有任何内容输出。于是我在网上查找了许多资料,现在总结出错的原因和错误解决办法。1.1出错原因出现Cannot retrieve debugging output。这个错误的原因是因为Qt只能打开一个编译器,如果同时打开两个编译器时,就会出现这种错误。原创 2018-01-25 10:21:14 · 2990 阅读 · 0 评论 -
Qt5.9之复制图像路径(QPainterPath类)
本文主要总结用QPainterPath类绘制一个可复制的图形。复制图形时只需要调用之前预定义过的QPainterPath类就好。其中QPainterPath的绘图函数是painter.drawPath(),函数moveTo(x,y)功能是将绘图函数的起点移动到指定的位置(x,y),从点(x,y)开始绘制图像。具体的实例如下内容所述:1.1新建一个Widget工程,基类选择为QWidget。在Wid原创 2018-01-17 20:39:50 · 1483 阅读 · 0 评论 -
Qt5.9创建画布和用鼠标在画布上拖出矩形
本文章主要总结用Qt5.9Creator创建一个画布和用鼠标在画布上拖拽出一个矩形的实例,具体的步骤如下所述:1.1新建一个Widget工程,基类选择为QDialog。在Dialog.h头文件中添加如下代码:1.2在Widget.cpp的构造函数中,添加如下代码:1.3在Widget.cpp源文件中,添加如下代码:原创 2018-01-25 21:16:11 · 11793 阅读 · 0 评论 -
Qt5.9Creator插入文本内容到textBrowser编辑框起始位置(第一行)
本文章主要总结用Qt5.9Creator插入文本内容到TextBrowser编辑框的起始位置(第一行)。要实现将字符串内容插入TextBrowser编辑框的第一行,本教程用到的是Qt的moveCursor函数,这篇教程还用到了textCursor().insertText()函数(地址:http://blog.csdn.net/jackzhaoyuxiang/article/details/410原创 2018-01-16 15:53:47 · 11855 阅读 · 0 评论 -
Qt5.9对图片的基本操作(Pixmap类)(基本操作:打开图片,缩放图片,旋转图片,扭曲图片)
本文主要总结用Qt5.9Creator自带的Pixmap类,实现对图片的基本操作。基本操作包括打开图片(绘制图片load()函数),缩放图片(scaled()函数),旋转图片(rotate()函数),扭曲图片(shear()函数)。具体的实例见下面工程的代码和注释。1.1新建一个Widget工程,基类选择为QDialog。在Widget.h头文件中添加如下代码:1.2在Wi原创 2018-01-18 21:26:19 · 5184 阅读 · 2 评论 -
将十六进制数QString转换为int型整数(比如将QString型的"F1"转换为int型是241)
本文章主要总结QString字符串中存放一个十六进制数,将该十六进制数转换为一个int型十进制数(比如将QString型的"F1"转换为int型的241)。1.1比如将QByteArray第0字节中的字母F转换为十进制整数是15,用到的函数是toInt(NULL,16)。当将连续两个字母转换为十进制整数后,可以组合形成一个字节的十六进制数,即0xF1,可以通过公式IntNum=F*16+1*16,原创 2018-01-18 17:03:32 · 13935 阅读 · 1 评论 -
Qt5.9设置pushButton按钮背景色和字体颜色
本博客主要总结Qt中设置pushButton按钮的背景色和字体颜色,具体的内容如所述: 1.1设置背景色可以用函数setStyleSheet("background: rgb(0,255,0)); 1.2设置字体颜色用函数setStyleSheet("color: red); 1.3具体的代码如下图所示: 1.4程序运行后的效果图如图所示:push...原创 2018-02-28 10:34:54 · 73435 阅读 · 10 评论 -
Qt5.9中控件listWidget用法(QListWidget基本用法)
本博客主要总结了listWidget控件的基本用法,其中讲解了两种方法给listWidget控件添加内容,分别是ui界面操作法和写代码添加法。下面将详细讲解这两种方法。常用函数讲解:(1)addItem函数void addItem ( const QString & label )void addItem ( QListWidgetItem * item )void a...原创 2018-02-28 17:48:14 · 65806 阅读 · 6 评论 -
QByteArray在Qt5.9中的赋值和显示以及存储形式(toHex()函数)
本文章主要总结QByteArray类的用法,主要是总结如何给QByteArray的对象赋值十六进制数和显示该十六进制数以及十六进制数在QByteArray中的存储形式,具体的实例如下所述:(字符表示的十六进制数:'\xFF')(Qt中QByteArray存储的十六进制数是0xff,实际是以ascll码存储的,存储形式为'\xff',所以如果需要比较的话,需要用array.at(0) == '\xf...原创 2018-01-18 11:47:47 · 33778 阅读 · 1 评论 -
Qt5.9中QSS(qt Style Sheet)用法之一设置按钮颜色和背景色(设置按钮间相互间隔、设置按钮与周围边缘间隔)
本博客主要总结用QSS(qt Style Sheet/qt样式表)来设置QPushButton的背景色和字体颜色用法。在Qt中,常用控件都可以用QSS来设置颜色和背景,下面本文将举一个实例,示范QSS用法。本文实例的主要内容是,设置两个pushbutton按钮的字体颜色和背景色。同时,本文也总结了利用布局管理器,设置两个按钮跟上下空间距离,以及两个按钮相互之间距离,具体的实例如下代码所示:...原创 2018-06-20 21:15:11 · 6845 阅读 · 0 评论 -
Qt5.9中QVBoxLayout、QHBoxLayout、QStackedLayout、QWidget综合用法
本博客主要总结用QVBoxLayout、QHBoxLayout、QStackedLayout、QWidget综合起来设计一个界面,目的是为了熟悉布局管理器与widget界面结合用法。主要设计思路是写一个界面,该界面主要用一个垂直布局管理器QVBoxLayout,然后在垂直布局管理器上,先添加一个水平布局管理器QHBoxLayout,再添加第二个堆布局管理器QStackedLayout。然...原创 2018-06-22 23:08:59 · 5165 阅读 · 0 评论 -
Qt5.9布局管理器实例(QVBoxLayout,QHBoxLayout,QGridLayout)(一个简单的手写界面实例)
本博客主要总结用Qt5.9手写一个界面,该界面的pushButton,linetxt控件都用代码来实现,同时手写水平布局、垂直布局、栅格布局,具体的用法如下所述。1.1新建一个widget工程,然后分别在widget.h,widget.cpp分别添加如下代码,main.cpp函数不变。widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWid...原创 2018-06-15 15:02:56 · 4445 阅读 · 2 评论 -
Qt5.9中工具栏类QToolBar的用法
本文主要总结菜单栏类QMenu和工具栏类QToolBar的用法,具体的用法,将通过一个实例进行讲解。1.1新建一个widget工程,不要勾选ui界面设计,然后分别在widget.h,widget.cpp,main.cpp分别添加如下代码。widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#inclu...原创 2018-06-29 14:12:43 · 43208 阅读 · 3 评论 -
(转载)QTableWidget详细用法总结(非常详细,基本所有常用函数都涉及了)
本文是完全转载如下地址的内容,如有侵权,请告知博主,会及时删除。原文地址:https://www.cnblogs.com/findumars/p/5553367.html由于这篇博客写得非常好,对学习和理解QTableWidget具有非常非常大的帮助,所以进行了转载。1.QTableWidget不能在mainwindow中随主窗口的大小变化?解决:在表格外部添加布局。...转载 2018-06-29 15:33:06 · 7583 阅读 · 2 评论