![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt之控件讲解篇
文章平均质量分 87
本专栏内容将详细介绍Qt中各种控件的使用方法和技巧,包括但不限于按钮、文本框、标签、列表框、下拉框、进度条等常见控件的使用。我们将通过实例演示来帮助读者更好地理解控件的使用,同时也会分享一些实用的小技巧和注意事项,帮助读者更加高效地开发Qt应用程序。欢迎大家阅读和学习!
前行中的小猪
一个爱数码,爱捣鼓,喜欢钻研,疯狂敲代码努力奋斗的Coder, Cheer Up!
展开
-
Qt模仿安卓手机中app图标移动
一、简述最近使用Qt中的拖拽事件加上一些动画效果模仿了安卓手机中日常用的app图标拖动,目前支持横向移动。通过判断当前拖动鼠标的位置来进行选择是否进行动画移动前后的按钮。...原创 2019-01-21 22:44:05 · 2192 阅读 · 5 评论 -
Qt之使用QGraphicsDropShadowEffect添加窗口边框以及文字阴影效果
一、简述QGraphicsDropShadowEffect继承自QGraphicsEffect,实现了一种阴影的图像效果。我们在Qt助手中看到QGraphicsEffect派生了四个子类,分别实现不同的效果。这里我们看到QGraphicsEffect的子类实现了四种不同的效果,我们可以针对需求选择不同的Effect。今天我们要说的是使用QGraphicsDropShadowEffect来给...原创 2019-06-13 18:01:30 · 13991 阅读 · 6 评论 -
Qt之实现自定义树状图控件
一、简述这是好久之前做的一个树控件,挺好玩的就拿出来分享一下.代码的主要思路是是通过一个ListWidget和一个自定义的Widget进行组合成为一个节点,然后多个这样的控件进行组合,类似树控件的一个展示效果。 通过这个控件可以做成QQ好友列表的效果,之前有做过一版QQ列表,已经做完了,可惜代码找不到了…不过只需要修改这两个控件就可以做成QQ好友列表的样子了,如果代码找到了,到时候可以...原创 2019-08-09 17:38:21 · 11371 阅读 · 3 评论 -
Qt 如何读取编辑保存显示 MarkDown文件
简述MarkDown 是一种轻量级、纯文本格式语法的语言,使用场景非常丰富,而且非常方便。CSDN的文章编辑就是使用的MarkDown语法,再比如github以及我日常使用的有道云笔记中都可以使用此语法去编辑文章。了解MarkDown语法有助于我们快速编辑对应格式的文章,也可以借助于对应的工具。CSDN、有道笔记也都有自己编辑文章的工具,操作起来也很方便。但是不同的是,他们都支持基本的Mark...原创 2018-10-25 21:12:31 · 4337 阅读 · 2 评论 -
Qt 之 自定义按钮 在鼠标 悬浮、按下、松开后的效果
一、简述在上一篇 Qt 之 去除窗口部件被选中后的焦点虚线框 中,我们为了去除焦点虚线框,给按钮的样式加上了如下的样式。QPushButton{ background:red; border:0px;}这样导致鼠标点击按钮之后没有按下凹陷的反馈感觉是没有点击上去似的。上面两个按钮加上了border:0px;去除了边框,点击之后没有凹陷的感觉,而后两个按钮没有加上border:0p原创 2016-12-05 15:28:36 · 58482 阅读 · 19 评论 -
QComboBox下拉框文字如何在字体变大之后自适应高度
一、简述一般我们给QComboBox设置完字体之后,在显示上并没有什么问题如下图。a、正常状态由于程序在最大化的时候,因为主窗口尺寸变大,需要整体改变所有控件的尺寸,文字的大小,所以在窗口最大化时因为文字变大,所以会出现这样的效果。我们发现下拉列表没有铺满,虽然下拉框的的高度变了。b、字体放大时,文字错位所以在ComboBox创建完成,第一次展开下拉框时,下拉框文字显示是正常的,无...原创 2019-08-09 16:36:38 · 6485 阅读 · 0 评论 -
QTreeWidget隐藏节点的两种方式
简述关于QTreeWidget隐藏节点有两种方式,一种是直接隐藏,一种是间接隐藏,但是两种方式各有差异,下面请听具体解说。方法一:直接隐藏式Qt助手里面提供了QTreeWidgetItem::setHidden方法,我们可以调用setHide(false)直接隐藏当前item。但是调用此方法会隐藏该节点下面的所有子节点。图 1-1:我们通过图1-2看到,调用此方法会将自己所有的孩子节点都给隐藏了,如果有这种需求的直接调用此方法即可。效果图 1-2:方法二:间接隐藏式此种方法间接地去把原创 2022-03-14 20:26:01 · 5743 阅读 · 0 评论 -
Qt 之 模仿迅雷 根据Url获取文件信息——上
一、简述 最近再看Qt实现HTTP下载时,看了一下迅雷下载,发现迅雷做的很好,不论是界面还是下载速度都非常不错,今天看到迅雷9新建下载任务一个神奇效果,复制下载url到输入框,迅雷能够自动解析下载文件信息。 于是十分好奇,便自己用Qt尝试做了一下,忙了一晚上终于做出了一个大概模样。下面看一下效果。下面是迅雷的效果。 下面是我自己实现的一个效果。对比上下两张图,可以看出模仿相似度百分之99.9%原创 2016-12-07 23:59:36 · 2818 阅读 · 6 评论 -
Qt 之 自定义窗口标题栏
首先自定义标题栏解决了我们程序在不同平台乃至同一平台不同的版本中样式不同的问题,使用自定义标题栏,能够保证外观的一致性,这也是为什么像QQ、有道词典、360等软件都没有使用系统标题栏,都是自定义标题栏了。正是因为自定义标题栏,我们可以自定义不再受约束,想怎么设计就怎么设计。自定义标题栏可以使用自己设计的图标,当然比系统的图标要美观了,颜值当然更高了。下面就讲一讲如何用Qt实现自定义窗口标题栏。原创 2016-12-06 23:20:44 · 78220 阅读 · 119 评论 -
Qt 之 去除窗口部件被选中后的焦点虚线框
一、简述十一月已去,迎接了2016年的最后一个月。 很惭愧,十一月份就写了四篇博客,十二月好好加油,争取一天一篇。今天就先讲一讲一个简单的问题,在界面中如果有按钮,复选框、单选框等部件,我们按Tab键时会出现一个与部件相同大小的矩形虚线框,覆盖在部件上。有时候可能我们并没有在意这个细节,但是有时候这个矩形虚线框会影响界面的美观,降低了界面的颜值。先看一下如何会出现矩形虚线框。我们看上图无论我们怎么原创 2016-12-01 19:11:45 · 10562 阅读 · 7 评论 -
Qt 之 自定义提示信息框—迅雷风格
一、简述最近一直在研究迅雷9的界面,花了点时间做了几个通用的提示信息框,整体风格与迅雷9界面相同。支持模态和非模态两种模式窗口。提示框效果见下图。我们可以根据设置不同的参数来设置提示框标题、显示内容、显示图标、下方按钮个数,可以设置为输入框,也可以设置为模态/非模态对话框,实现了自定义的QMessageBox。目前实现了提示框基本功能,后续将继续拓展更多功能。小伙伴们可以根据需要自定义其他功能,下面原创 2016-12-13 22:25:24 · 7923 阅读 · 8 评论 -
Qt 之 模态、非模态、半模态窗口的介绍及 实现QDialog的exec()方法
一、简述先简单介绍一下模态与非模态对话框。模态对话框 简单一点讲就是在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭。这时一般需要点击对话框中的确定或者取消等按钮关闭该对话框,程序得到对话框的返回值(即点击了确定还是取消),并根据返回值进行相应的操作,之后将操作权返回给用户。这个时候用户可以点击或者拖动程序其他窗口。 说白了就相当于原创 2016-12-15 19:47:04 · 34383 阅读 · 12 评论 -
Qt之QTableWidget 表头添加 CheckBox
一、简述QTableWidget是我们经常用到的控件。因为Table可以很清晰得展示数据,操作数据,所以在使用过程中我们需要对table进行很多设置来满足我们的需求,table其实是多个控件的组合,比如有横向表头、纵向表头、滚动条、中间表格等。Table的样式、设置接口很多,详情可以参见Qt助手中介绍。很详细。这里介绍如何在Table表头上添加自定义CheckBox。二、代码之路代码很简单...原创 2019-05-17 19:11:42 · 12082 阅读 · 13 评论 -
Qt 之 模仿迅雷 根据Url获取文件信息——下
一、简述在上篇 Qt 之 模仿迅雷 根据Url获取文件信息——上 文章中简单介绍了一下几个版本迅雷的界面变化,同时展示了这两天模仿迅雷新建任务窗口做的一个小例子。在这一篇中将讲解如何实现迅雷新建任务窗口。首先简单看一下效果图。二、代码之路看代码之前需要看一下Qt 之 自定义窗口标题栏这一篇文章,因为这里用到了这篇文章中写到的自定义标题栏。这里新建任务窗口类NewTaskWindow 继承了BaseW原创 2016-12-08 22:35:52 · 3998 阅读 · 1 评论 -
Qt实现不规则按钮之自绘圆盘式按钮
一、简述在上一篇文章中我们讲述了如何实现不规则按钮( Qt简述如何实现不规则按钮),其中提到了另外一种方法就是自绘,今天就此谈一谈如何自绘实现一个圆盘式的按钮。下面先看一张效果图。二、代码之路其实实现很简单,就是通过Qt的QPainterPath来实现圆弧式按钮的绘制,然后通过鼠标事件实现点击效果及点击信号的发送。因为正常QPushButton或者QToolButton是自己发原创 2018-01-21 23:06:45 · 11920 阅读 · 13 评论 -
Qt简述如何实现不规则按钮
一、简述我们在设计界面时通常会使用QPushButton或QToolButton,这是两种非常常用的按钮类,用这两种按钮可以满足我们日常的使用。这两种按钮都继承于 QAbstractButton,因为功能的不同,分成了QPushButton和QToolButton,那么这两种按钮具体怎么使用,可以参考Qt助手,本文重点不在于此。现在我们先不谈按钮的功能,就按钮的外观,样式,形状等进行讨原创 2018-01-19 01:08:30 · 8851 阅读 · 1 评论 -
Qt 之 自定义窗口标题栏 之 窗口拉伸
一、简述之前写了一篇 Qt 之 自定义窗口标题栏 ,用重写了窗口的标题栏,今天为此篇的续篇,对自定义窗口再进行拓展,因为进行了自定义窗口标题栏,去掉了窗口原有的边框,所以鼠标放置窗口边框对窗口进行拉伸的功能也就没有了,所以需要自己实现。其实窗口拉伸功能在 Qt 之 简单截图功能(三)实现可拖拽选中区域 文章中已经有类似的实现,但也有一些差别,下面就窗口拉伸功能进行讲述。注意:在阅读此篇文章前可以先阅原创 2017-09-07 23:56:10 · 8653 阅读 · 24 评论 -
Qt之QMenu菜单去除投影效果(阴影)
【代码】Qt之QMenu菜单去除投影效果(阴影)原创 2022-10-24 23:06:41 · 1567 阅读 · 1 评论 -
QToolButton 之续述
关于QToolButton的Check状态有时候我们需要根据按钮的check状态来设置按钮的不同背景或者是实现不同的功能。关于Qt 中的四大按钮——QCheckBox, QPushButton, QRadioButton, QToolButton,这四个按钮都继承自QAbstractButton,所以他们Check状态的变化都由QAbstractButton来控制。要使用按钮的Check状态前提需要原创 2016-08-22 11:35:41 · 8195 阅读 · 0 评论 -
Qt 之 自定义提示信息框—QQ风格
一、简述在 Qt 之 自定义提示信息框—迅雷风格 这篇文章中讲述了如何实现迅雷风格的自定义提示框。那么在这一篇中我们就讲述一下如何实现QQ风格的提示框。整体代码与Qt 之 自定义提示信息框—迅雷风格 中的代码类似,主要是界面样式上的不同,下面先看一下效果图。二、代码之路看代码之前需要看一下 Qt 之 自定义窗口标题栏 这一篇文章,因为这里用到了这篇文章中写到的自定义标题栏。这里新建任务窗口类MyMe原创 2016-12-20 12:42:46 · 14528 阅读 · 8 评论 -
Qt 实现 QQ 9.0 新版登录窗口
简述QQ的界面又进行了一波更新,登录界面的样式换了一种全新的效果。一直很喜欢QQ的界面,所以进行了一波模仿。点击登录,登录成功之后,右侧会出现一条伸出的竖线,然后窗口会自动向右移动直到窗口完全隐藏,然后竖线再进行收缩,总共三个连续动画效果,下面是效果图。有兴趣的可以加入Qt技术学习班群哈。Qt技术学习班开始了,赶紧报名吧! 群号:655815739 更多精彩、好玩的内容等着你...原创 2018-05-14 11:04:19 · 10083 阅读 · 21 评论 -
Qt 之 模仿 QQ登陆界面——功能篇(一)
一、简述今天是2017年第一篇技术文章,12月末事情太多,一直没来得及更新博客。今天继 Qt 之 模仿 QQ登陆界面——样式篇 这一篇 来简单地看一下对登录界面做的一些功能,主要是登录用户下拉列表和用户登录状态的切换。效果图:登录用户下拉列表用户登录状态二、代码之路accountitem.h#ifndef ACCOUNTITEM_H#define ACCOUNTITEM_H#include <QW原创 2017-01-04 23:21:32 · 17938 阅读 · 16 评论 -
Qt 之 模仿 QQ登陆界面——样式篇
一、简述今天晚上花了半天时间从QQ登录界面抠了些图,顺便加了点样式基本上实现了QQ的登陆界面全部效果。虽不说100%相似,那也有99.99%相似了哈O(∩_∩)O。QQ好像从去年开始,登录界面有了一个3D动态效果,要实现这个也不难,直接使用GIF制作工具,录制动态效果生成GIF图,然后用QMovie加载Gif图,QLabel显示即可。效果图:可以从上面的效果图看出,整个登录界面的效果都已实现(或者说原创 2016-12-21 22:57:23 · 41546 阅读 · 26 评论 -
Qt 中控件右击菜单的翻译
Qt 中有很多控件都支持右键点击显示菜单,比如QLineEdit 、 QTextEdit ,QSpinBox 、 QTextBrowser 等控件右击都会显示菜单, 但是默认菜单文字都是英文,当然我们也可以屏蔽菜单, 也可以显示,要是显示中文的话就要加载另外的翻译文件。对于QLineEdit、QScrollBar 、QSpinBox 等控件需要加载qt_zh_CN.qm翻译文件,这个文件在Qt的安装原创 2016-08-29 10:35:49 · 4059 阅读 · 0 评论 -
Qt 之 QLabel 设置面罩
效果图QLabel 是Qt 中的标签类,一般情况我们只是设置文字描述,但是QLabel不仅仅只是显示一些文字介绍那么简单。QLabel支持Html中标签的使用,同时可以设置普通图片和动态图。这里简单介绍一下如何为QLable设置面罩。代码很简单,通过设置不同形状的面罩可以达到不同的效果。1、设置动态图片QPixmap pixmapMask(":/Resources/maskRound.png");原创 2016-08-01 16:39:49 · 5888 阅读 · 0 评论 -
Qt 之 QToolButton属性简述
QtDesigner中Qt助手中以上是QToolButton主要的四个属性,下面分别简述这四个属性的作用。一、arrowType属性在Qt助手中可以看到arrowType属性有5个值,下面分别用图来解释着5个值的区别。 首先arrowType的默认值为NoArrow,也就是你直接在QtDesigner中拖出来的原始状态。 (1)UpArrow (2)DownArrow (3)LeftArro原创 2016-08-05 11:31:50 · 17868 阅读 · 6 评论 -
Qt 之QToolButton 实现QQ界面按钮效果
我们知道在QtDesigner中拖出来的空间都是最原始状态的,样式不是很美观,但是Qt提供了QSS,我们可以对控件设置样式来达到我们想要的效果。因此单独一个控件可以实现多种的样式。我们可以通过继承控件并重写paintEvent可以重绘控件,也可以通过简单地设置样式来达到不一样的效果。当然也可以通过控件的组合来达到我们想要的效果。看一下QQ的效果:看一下用Qt实现的效果:自己P的图,大家可以对照图片参原创 2016-08-08 22:52:22 · 20293 阅读 · 20 评论 -
Qt 之 模仿 QQ登陆界面——旋转窗口篇
一、简述今天是新的一年第一篇博客,有大半个月没有更新博客了。我想是时候,打开电脑、拿起键盘、开始在我的代码之路上披荆斩棘,斩杀恶龙。今天就继续来分享QQ登录界面的那些事。QQ登录界面的标题栏有一个小三角的按钮,一般情况下,大家可能并不会点击这个按钮,因为正常情况下大家登录QQ都不需要进行网络设置,只有在网络有限制的情况下,我们需要设置一些代理来登录QQ。当我们点击这个小三角按钮,我们会发现QQ的有一原创 2017-02-15 22:22:52 · 10945 阅读 · 17 评论 -
Qt 实现 QQ 9.0版 自定义菜单控件
简述重新最近开始了QQ最新版 9.0 界面的模仿,前几天搞了一个QQ登陆界面的动画效果详情见 QQ 9.0 新版登录窗口登录特效 ,今晚Qt技术学习班分享了QQ 9.0版本的自定义菜单控件,通过QListWidget 来承载 每个菜单项,通过简单的组合完成菜单项控件,主要如下: 1、自动设置菜单高度,根据当前添加的菜单项自增菜单高度; 2、菜单宽度可根据菜单文字自行设置; ...原创 2018-05-18 23:02:00 · 4251 阅读 · 2 评论 -
Qt小程序之QQ登录窗口输入框控件
一、简述在前面的文章里为大家展示了用Qt实现的QQ登录界面以及QQ窗口的右键菜单控件,(Qt 实现 QQ 9.0版 自定义菜单控件、以及Qt 实现 QQ 9.0 新版登录窗口),有兴趣的小伙伴可以看下相关的文章,今天就把QQ登录界面的输入框单独拿出来分享一下。单独看QQ的输入框其实也就是一个LineEdit,但是其实不是那么简单,用Qt要实现一样的效果需要加一些样式,贴图,布局等,还有一点就是...原创 2018-11-20 14:30:45 · 3122 阅读 · 6 评论 -
Qt 之 QQ系统表情(一)
在走上Qt之路后,对QQ的界面便情有独钟,由衷感叹:一个字——美 两个字——很美 三个字——非常美 四个字——真TM美说实在QQ的界面做的很精、致,毕竟积累了十几年的功力。但是也有不足的地方,任何事物都不是十全十美的,最重要的是要做的尽善尽美。好了话不多说,代码走起。这次主要是对QQ聊天窗口的表情框的简单实现,下篇中将进一步展开。先看看QQ的小表情框: 当我们将鼠标慢慢放在这个表情按钮上时会原创 2016-08-30 22:03:52 · 6450 阅读 · 5 评论 -
Qt 之 QQ系统表情(二)
简述继上篇Qt 之 QQ系统表情(一) 中我们实现了简单的表情框,但是还遗留了一个问题,虽然我们能够显示动态的表情,但是总不能让表情框中的每一个表情都动态显示吧(见下图一),这样的效果显然不是我们要的,真正要实现的是当鼠标悬浮在某个表情上才让他动态显示,其他的都显示为静态样式(见图二)。好了,话不多说,代码走起!图一 图二 代码之路为了实现这个效果呢,我也是用了很多方法,最后发现了两种方法来达原创 2016-08-31 09:29:25 · 3241 阅读 · 4 评论 -
Qt 之 QQ系统表情(三)
简述继上篇Qt 之 QQ系统表情(二) 中我们实现了当鼠标悬浮在某个表情时动态显示,其他的都显示为静态样式,但是方法并不是很好,下面我们介绍另外两种比较好的方法来实现这个效果。代码走起!代码之路上一篇,我们是通过在eventFilter中去捕捉鼠标当前的位置来获取到tableWidget中的item,这种方法给我一种不安全感,那么下面我们来介绍另外两种可靠的方法。方法一先说一说一种种简单的方法,通过原创 2016-09-01 21:57:22 · 3238 阅读 · 3 评论 -
Qt 之 QQ系统表情(四)
简述继Qt 之 QQ系统表情(三) 中我们用了两种方法实现了当前鼠标位置的表情动态显示,在这一篇中我们将对其进行拓展,增加一些新特效以及能够自定义表情窗口(包括表情的行列数 , 表情的大小,表情的个数、最大行数等)。好了,话不多说,代码走起。代码之路在Qt 之 QQ系统表情(三) 中,我们通过nativeEvent事件捕捉鼠标的位置,根据鼠标的位置判断在QTableWidget中的哪一个item上,原创 2016-09-06 18:31:25 · 2832 阅读 · 1 评论 -
Qt 之 QQ系统表情(五)
简述在Qt 之 QQ系统表情(四) 中我们通过用nativeEvent事件的方法实现了自定义表情窗口,这一篇将通过继承QLabel的方式来实现。同时我也在研究过程中发现了一些小问题。代码Go!代码之路MyEmotionItemWidget.cppMyEmotionItemWidget::MyEmotionItemWidget(QString fileName , QSize emotionMoive原创 2016-09-07 08:50:54 · 3814 阅读 · 13 评论 -
Qt 之 设置窗口边框的圆角
QtpaintEventsetStyleSheet原创 2016-08-01 11:59:36 · 58738 阅读 · 11 评论 -
Qt 之 QQ系统表情—实现动态显示效果
简述在Qt 之 QQ系统表情(五) 中 我们实现了自定义系统表情窗口,这一篇将简单介绍如何实现QQ聊天界面中小表情窗口切换至正常表情窗口的动画效果。先看看QQ的效果: 当鼠标悬浮在表情按钮之上显示小表情窗口,点击动态显示正常表情窗口,再点击隐藏窗口。表面上看起来这几个动作很简单,但是要想控制好着实不易,下面直接上代码。代码之路//显示小窗口void EmotionWindow::showSm原创 2016-09-26 22:15:51 · 5923 阅读 · 4 评论