- 博客(688)
- 资源 (173)
- 收藏
- 关注
原创 Qt之使用Qt内置图标
Qt内置图标封装在QStyle中,共七十多个图标,可以直接拿来用,能应付不少简单程序需求,不用自己去找图标并添加到资源文件了。下面是内置图标的枚举定义:QStyle提供了QIcon standardIcon()函数用于将内置图标转换为QIcon,同时提供了QPixmap standardPixmap()函数用于将内置图标转换为QPixmap。这两个函数的第一个参数都是上面贴出的枚举值。
2024-02-04 20:10:19 3045 93
原创 Qt6入门教程 15:QRadioButton
QRadioButton控件提供了一个带有文本标签的单选按钮。QRadioButton是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选按钮运行用户多选一,也就是说,在一组单选按钮中,每次只有一个能选中,如果用户选择了另一个,那么之前那个就会切换到未选中状态。单选按钮默认开启自动互斥(autoExclusive)。如果启用了自动互斥,属于同一个父部件的单选按钮的行为就和属于一个互斥按钮组的一样。
2024-02-02 01:33:31 1543 74
原创 Qt6入门教程 14:QToolButton
QToolButton可以提供一个弹出菜单,使用setMenu()来进行设置。通过setPopupMode()来设置菜单的弹出模式,缺省模式是DelayedPopupMode,这个特征通常用于网页浏览器的“后退”按钮,在按下按钮一段时间后,会弹出一个可以跳转的页面列表,默认延迟600毫秒,可以用QStyle::SH_ToolButton_PopupDelay进行调整。设置默认的QAction,如果有一个默认的action,该action则会定义QToolButton的文本、图标、TooTip等按钮的属性。
2024-01-31 08:17:17 1680 56
原创 Qt6入门教程 13:QPushButton
QPushButton是与QAbstractButton最接近的完全体按钮,它具备QAbstractButton的所有特性,并且支持设置菜单。
2024-01-29 00:48:42 1223 56
原创 Qt6入门教程 12:QAbstractButton
继承QAbstractButton,你至少得重新实现paintEvent()来绘制按钮的外形、文本和图标。通常也建议重新实现sizeHint(),某些情况下还得重新实现hitButton()(判断鼠标是否在按钮区域内)。下面的代码中集成QAbstractButton实现了MyButton,重新实现了paintEvent。在paintEvent中绘制文本颜色为白色,按钮底色为蓝色(鼠标按下或按钮选中时为红色)。代码中涉及的绘图和布局知识后面会单独介绍。
2024-01-28 12:51:47 1694 24
原创 Qt6入门教程 11:父子对象关系
Qt的对象模型提供了一种Qt对象之间的父子关系,当很多个对象都按一定次序建立起来这种父子关系的时候,就组织成了一颗树。当delete一个父对象的时候,Qt的对象模型机制保证了会自动的把它的所有子对象,以及孙对象,等等,全部delete,从而保证不会有内存泄漏的情况发生。在每一个Qt对象中,都有一个链表,这个链表保存有它所有子对象的指针。当创建一个新的Qt对象的时候,如果把另外一个Qt对象指定为这个对象的父对象,那么父对象就会在它的子对象链表中加入这个子对象的指针。
2024-01-25 22:07:38 1781 106
原创 Qt6入门教程 10:菜单栏、工具栏和状态栏
用Qt Creator新建基于QMainWindow的项目时,会自带菜单栏和状态栏。还是以前面的HelloWorld项目为例,通过Qt Designer和纯手写两种方式来添加或移除菜单栏、工具栏和状态栏。
2024-01-23 19:38:03 2542 27
原创 Qt6入门教程 9:QWidget、QMainWindow和QDialog
在用Qt Creator创建Qt Widgets项目时,会默认提供三种基类以供选择,它们分别是QWidget、QMainWIndow和QDialog,其中QMainWindow和QDialog的基类都是QWidget。
2024-01-21 23:35:15 1946 52
原创 Qt6入门教程 8:信号和槽机制(连接方式)
信号和槽机制(连接方式),即五个参数,共有五种,分别是Qt::AutoConnection、Qt::DirectConnection、Qt::DirectConnection、Qt::QueuedConnection、Qt::BlockingQueuedConnection和Qt::UniqueConnection
2024-01-17 20:30:44 1899 28
原创 Qt6入门教程 7:信号和槽机制(原理和优缺点)
信号和槽用于对象之间的通信。信号和槽机制是Qt的核心机制,也是Qt不同于其他框架的最突出的特征。Qt的元对象系统使信号和槽成为可能。本文将介绍其原理和优缺点。
2024-01-17 00:54:41 1469 17
原创 Qt6入门教程 6:Qt元对象系统
Qt中的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。元对象系统是基于以下3个条件的:●该类必须继承自QObject类;●必须在类的私有声明区声明Q_OBJECT宏(在类定义时,如果没有指定public或者private,则默认为private);●元对象编译器Meta-Object Compiler(moc),为QObject的子类实现元对象特性提供必要的代码。
2024-01-15 22:44:55 1770 29
原创 Qat++,轻量级开源C++ Web框架
Oat++是一个面向C++的现代Web框架官网地址:https://oatpp.iogithub地址:https://github.com/oatpp/oatppOat++具有如下特性:●随处运行Oat++没有任何依赖性,可以很容易地移植到各种支持的平台上(Linux、BSD、MacOS、OpenWRT、Windows)。●构建健壮的api使用Oat++的Simple-API,很容易就能构建出灵活而健壮的High-Level API。●高并发使用Oat++的Async-API,可以在单
2024-01-14 16:01:27 5518 150
原创 Qt6入门教程 5:添加资源和应用程序图标
Qt6入门教程 5:添加资源和应用程序图标。Qt资源系统是一种平台无关的机制,它将二进制文件存储到可执行文件中。当你的程序需要一系列文件(图标、翻译文件等等),而又不想这些文件有丢失的风险时,这种机制是非常给力的。前面创建了一个最简单的HelloWorld程序,略显简陋,下面给它添加标题栏图标和exe图标美化一下。
2024-01-14 15:59:20 1362 4
原创 C++程序员必备的面试技巧
平时可以搜集一些大厂的面试题或笔试题,放在CSDN博客上,没事就翻一下,个人觉得博客是比书更好的信息载体,比如说可以是彩色的图片、可以用动图等。●善于解决问题:在面试中,经常会遇到一些难题或者意想不到的问题,这时候要保持冷静,运用自己的知识和经验,找出解决问题的方法。●注意沟通技巧:在面试中,要注意和面试官的沟通技巧,要能够清晰地表达自己的思路和想法,同时也要认真听取面试官的意见和建议。●展示自己的实际经验:在面试中,可以通过举例说明自己曾经解决过的问题,或者展示自己的项目经验,来证明自己的实力和经验。
2024-01-12 00:10:18 1509 41
原创 Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库
QSkinny库基于Qt Graphic View和Qt/Quick中少量的核心类。它提供了一组轻量级控件,可以在C++或QML中使用这些控件。QSkinny默认是启用硬件加速的,非常适合嵌入式设备,目前已经应用于大量汽车GUI的代码实现中。正如预期的那样,它有良好的启动性能和低内存占用率。QSkinny能在支持Qt/Quick的所有平台上运行,但目前只在Linux上得到了充分的测试。理论上支持所有Qt>=5.15的版本,推荐使用下面这三个版本:●Qt 5.15。
2024-01-11 23:33:58 4050 38
原创 QML实现的图片浏览器
QML实现的图片浏览器,功能包括:●悬浮工具栏●支持图片缩放、旋转、还原、旋转、拖动。●拖动图片时,释放鼠标图片会惯性滑动。●支持左右翻页查看文件夹中的图片。●支持保存图片至本地。
2024-01-11 02:01:50 2482 93
原创 Qt优秀开源项目之二十:RedPanda-CPP(小熊猫C++)
RedPanda-CPP(小熊猫C++)是跨平台、轻量易用的开源C/C++集成开发环境。和经典的Dev-C++ 5.11、新的Embarcadero Dev-C++ 6相比,无论在用户界面还是功能方面都有了很大的改进,在编译使用手感上已经可以和vs code相当,而运行占用的资源比后者要少得多。
2024-01-07 23:41:29 5699 37
原创 Qt6入门教程 4:Qt Creator常用技巧
在上一篇中,通过创建一个Qt项目,对Qt Creator已经有了比较直观的认识,本文将介绍它的一些常用技巧。Qt Creator启动后默认显示欢迎页面创建项目已经用过了,打开项目也很简单,就是打开一个已经存在的项目。项目历史记录非常有用,能快速打开最近使用过的项目。会话记录及管理不知道是干啥的,平时也用不到。Get Started、示例和教程一看就是些学习资料,不过都是英文的,搭配百度翻译自学效率更高哦。编译、运行及调试在上篇中已做介绍。
2024-01-07 18:15:29 2009 48
原创 Qt6入门教程 3:创建Hello World项目
程序员的职业生涯都是从一声问候开始的,我们的第一个Qt项目也是HelloWorld首先要说明的是,IDE不一定要用Qt Creator,用Visual Studio、VSCode、CLion也可以搭建Qt开发环境,它们都相应的插件来支持Qt开发。当然这些IDE没有高低贵贱之分,纯属个人习惯而已,我平时就是Qt Creator做开发的,而且作为Qt教程,不用官方提供的开发工具来演示,也不太合适啊。Qt 6.6.1自带的Qt Creator版本是12.0.1,打开后默认显示欢迎界面。
2024-01-06 19:28:48 1757 36
原创 Qt之QPainter绘制浪漫星空(快来许愿吧)
前几天发现几篇关于Python的博文,里面不是放烟花(Python烟花秀),就是献爱心(Python跳动的爱心)。以前学Python的时候的时候关于它的简介还是这样的:Python是一种高级编程语言,可以应用于爬虫、大数据、人工智能等方面。没想到Python在GUI方面也这么强大,好在Qt也不怂,,效果不逞多让。还有一篇,感觉不错,用QPainter复刻了一下,代码量和Python版本差不多。
2024-01-03 00:04:24 2363 15
原创 Qt基础之四十五:Qt国际化(I18N)
国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),这种奇葩的缩写方式,让我想起了NBA球星“字母哥”。下面看下Qt实现的动态语言切换效果。
2023-12-31 20:56:04 3351 13
原创 Qt基础之四十三:Qt智能指针(QPointer、QSharedPointer、QWeakPointer和QScopedPointer)
Qt智能指针(QPointer、QSharedPointer、QWeakPointer和QScopedPointer)
2023-12-30 00:10:13 2444 1
原创 Qt之自定义分页(翻页)控件
Qt之自定义分页(翻页)控件:当数据量较大时,分页显示是个不错的选择。这里用百家姓来演示分页效果,包括首页、上一页、下一页、尾页和跳转。
2023-12-27 22:17:04 1936 2
原创 Qt之判断一个点是否在多边形内部(射线法)
以被测点Q为端点,向任意方向作射线(一般水平向右作射线),统计该射线与多边形的交点数。其次,对多边形的顶点和射线相交的情况,如果该顶点是其所属的边上纵坐标较大的顶点,则计数,否则忽略该点;最后,对于Q在多边形边上的情形,直接可以判断Q属于多边形。在图A中,射线与多边形的顶点相交,这时交点只能计算一个;在图B中,射线与多边形顶点的交点不应被计算;在图C中,射线与多边形的一条边重合,这条边应该被忽略不计。为了统一起见,射线可设定为水平向右,设点P的纵坐标与Q相同,P的横坐标为一大的整数,则可用QP代替射线。
2023-12-20 02:06:10 2603
原创 Qt之使用QListView加载相册(富文本ToolTip)
Qt之使用QListView加载相册(富文本ToolTip):如果item的显示效果达不到要求,那么就自定义delegate。
2023-12-18 11:37:26 2519
原创 Qt基础之四十二:QMap、QHash的实现原理和性能对比
QMap、QHash的实现原理和性能对比:红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。红黑树为了保证其最长路径中节点个数不会超过最短路径节点个数的两倍,具有以下五个特性:(1)每个结点不是红色就是黑色(2)根节点是黑色的(3)如果一个节点是红色的,则它的两个孩子结点是黑色的。
2023-12-15 18:56:50 4485
原创 Qt之自定义QToolTip,去掉显示动画和隐藏延时
先来看看Qt原生QToolTip的缺点:1.当提示内容无变化时,弹窗无法移动。只能先传个空字符串强制弹窗隐藏,然后在新位置再传个字符串。2.默认显示10多秒才消失,当然这个时间是可以设置的,但是如果我想一直显示呢?总不能设置一个超级大的时间吧。3.鼠标移出控件后(调用QToolTip::showText时传入了控件指针)默认300毫秒弹窗才隐藏。而且这个时间没法设置,如果想立即隐藏就没办法了。
2023-12-12 22:04:44 2598
原创 Qt优秀开源项目之十九:跨平台记事本Notes
Qt实现的跨平台记事本Notes1.完全基于Qt和C++2.完全开源和跨平台(Linux、macOS、Windows)3.运行速度快,界面美如画4.支持Markdown5.支持使用嵌套文件夹和通用标签分层组织文档6.支持主题设置,在浅色、深色和深褐色之间切换7.丰富的快捷键操作,这个一言难尽,得自己去体会了8.支持开机启动和在线升级
2023-12-09 16:36:14 3044
原创 C++笔试题之回文数的判断
C++笔试题之回文数的判断。“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。 设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。 注意:1.偶数个的数字也有回文数1244212.小数没有回文数
2023-12-05 13:14:08 1700
原创 Qt基础之四十:Qt Installer Framework(QtIFW)的编译、使用和实现原理
Qt Installer Framework(QtIFW)的编译、使用和实现原理
2023-12-02 15:01:06 4614 1
20种数据结构和算法的C++实现
2017-11-17
Qt下用QSplitter实现滑动窗口
2017-11-16
QML实现图像处理,包括浮雕、锐化等效果
2017-11-14
WebRTC学习之四:最简单的语音聊天
2017-01-10
WebRTC学习之三:录音和播放
2016-12-26
Qt国际化(I18N)
2023-12-31
QHVlcPlayer.rar
2021-02-27
Qt+libVLC+QWidget渲染
2021-02-27
Qt调用libVLC实现播放器
2021-02-26
TestUI.rar
2021-02-09
QHOpenGLPlayer.rar
2021-01-10
基于Qt和SDL2播放PCM
2021-01-05
Qt5版NeHe OpenGL教程6-10
2018-05-17
Qt5版Nehe OpenGL教程1-5
2018-05-14
Qt调用OpenGL API实现彩色旋转立方体
2018-05-09
MyTcpClient
2018-03-16
Boost.Asio C++ Network Programming随书源码
2018-01-29
Boost.Asio C++ Network Programming(高清,带书签,可复制)
2018-01-29
Effective Modern C++ 英文原版(带书签)
2018-01-27
++i和i++哪个更高效
2023-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人