会飞的鱼-blog
欢迎大家加入qq交流群一起进步,746491142。CSDN数据库赛道新星计划Top3,阿里云专家博主。
展开
-
第一章节 Qt的概述和安装
Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编。原创 2024-06-15 16:58:15 · 248 阅读 · 0 评论 -
第十八章 Qt的补充知识
自定义菜单栏需继承自新建桌面应用程序testQMenuCustom,基类QMainWindow,勾选创建界面文件,其他选项默认。当前项目添加C++类MyAction,继承自QWidgetAction,编辑myaction.h文件。原创 2024-07-06 16:30:00 · 85 阅读 · 0 评论 -
第十七章 Qt的文件读写以及Qt事件详解
Qt样式表是一个可以自定义部件外观的强大机制,样式表的概念、术语、语法均受到HTML的层叠样式表(Cascading Style Sheets,CSS)的启发。样式表可通过QApplication::setStyleSheet()函数将其设置到整个应用程序上,也可以使用QWidget::setStyleSheet()将其设置到指定的部件或子部件上,不同级别均可设置样式表,称为样式表的层叠。样式表也可通过设计模式编辑样式表。原创 2024-07-05 13:30:00 · 76 阅读 · 0 评论 -
第十六章 Qt的文件处理操作详解
QFile需要使用 / 作为文件分隔符,不过,它会自动将其转换成操作系统所需要的形式。例如 C:/windows 这样的路径在 Windows 平台下同样是可以的。QFile主要提供了有关文件的各种操作,比如打开文件、关闭文件、刷新文件等。我们可以使用QDataStream或QTextStream类来读写文件,也可以使用QIODevice类提供的read()、readLine()、readAll()以及write()这样的函数。原创 2024-07-05 19:15:00 · 93 阅读 · 0 评论 -
第十五章 Qt的QGraphics View绘图框架详解
使用自定义视图,重载视图的鼠标事件(实现鼠标事件处理函数),在鼠标事件处理中,发送消息(同时把鼠标位置在视图坐标系中的坐标作为参数传递出去) 最后在主场景中,接受消息,做需要的处理。Q_OBJECTpublic:protected://重载鼠标事件signals://添加两个自定义信号//直接移动鼠标就会触发 mouseMoveEvent 事件// 判断是否是鼠标左键触发的事件//鼠标位置在这个视图的视图坐标系下的坐标。原创 2024-07-04 20:45:00 · 206 阅读 · 0 评论 -
第十四章 Qt绘图
QPainterDevice 绘图设备,被绘制的对象,也就是一个二维界面,比如:QWidget, QPixmap, QImage 绘图设备,给 QPainter 提供一个“画布”窗口坐标系,默认就是:painter.setWindow(0, 0, 绘图设备的宽度,绘图设备的高度)从而,使得绘图和绘图设备隔离开来(相互独立),使绘图功能,能够自动适用于不同类型、 不同大小的设备。绘图时,不需要关注实际绘图设备的大小,以及程序在使用过程中绘图设备大小的变化。使用指定的颜色,对多个路径所围成的区域,进行填充。原创 2024-07-03 16:30:00 · 98 阅读 · 0 评论 -
第十三章 Qt的多窗口开发
MDI 使用 QMdiArea 作为多个子窗体的容器。这些子窗体,可以同享使用主窗体的工具栏和菜单栏, 适合,需要进行多个文档编辑的场景,类似 VS 的编辑界面。因为对话框窗口,不显示标题栏的时候,就不能直接拖动窗口,需要结合鼠标的拖动事件, 实现窗口的拖动效果。注意: 项目中使用了上一节章节中使用多个文件,拷贝过来后,需要修改后才能导入到项目中。Qt 提供了 MDI(多文档界面),可以更方便的实现多个窗口的开发。实现以上相关函数即可。原创 2024-07-03 09:45:00 · 102 阅读 · 0 评论 -
第十二章 Qt的对话框详解
Q_OBJECTpublic://添加接口,给对话框来调用private://只创建1次,以模态方式重复使用//可能多次创建,以show方式重复使用(使用的同时,可使用其它窗口)//10行6列//connect时,信号和槽的签名,对const和&可以忽略,也就是说const 和&可以不用写delete ui;//清除表格中的当前选择//更新当前选择//设置数据&previous)//动态创建模态对话框,用完后直接删除。原创 2024-07-02 08:20:17 · 152 阅读 · 0 评论 -
第六章节 Qt的关联与集合容器
Qt 关联容器: QMap, QHash, QMultiMap,QMultiHashQt 集合容器:QSet。原创 2024-06-25 17:45:00 · 253 阅读 · 0 评论 -
第十一章 Qt的模型视图
QTableView 使用 QLineEdit 作为默认的代理编辑组件。对于一些特殊的字段和需求,我们可 以使用自定义代理组件。使用自定义的代理组件,必须要实现继承自 QAbstractItemDelegate 的 4 个虚函数(如上图所 示)。添加 C++类,使用如下的方式。Q_OBJECTpublic://自定义代理组件,需要实现从父类继承的这 4 个函数//override 明确地表示一个函数是对基类中一个虚函数的重载//它会检查基类虚函数和派生类中重载函数的签名不匹配问题。原创 2024-06-30 16:15:00 · 98 阅读 · 0 评论 -
第十章节 Qt的界面UI组件详解
头文件Q_OBJECTpublic:private:#endif //cpp文件delete ui;ui文件使用自定义界面类,来优化 QQ 面板 因为 QListWidget 的 QListWidgetItem 的文本,只能显示一行,不能显示额外的信息。所以使 用自定义组件进行优化。直接使用以上创建的自定义界面类(3 个文件),然后拷贝到 QToolBoxDemo 项目中,微调 自定义组件的尺寸位置,效果如下://移除设计器中 ToolBox 的成员i>=0;原创 2024-06-29 16:15:00 · 174 阅读 · 0 评论 -
第九章节 Qt的时间和日期
QCalendarWidget 的父类是:QWidget.calendarPopup,可弹出日历进行选择日期。selectionChanged (输入日历)setSelectedDate (显示日历。原创 2024-06-28 18:15:00 · 109 阅读 · 0 评论 -
第八章节 Qt数值的输入与输出
setBinMode() 设置2进制 或setMode(QLCDNumber::Bin);2). 通过设置 displayIntegerBase 属性,显示数据时,不需要进行进制之间的转换。如果 digitCount 显示完整数部分后,还可以显示小数部分,那么剩余的小数部分就四舍五入。1). 不需要通过 QString 进行字符串和数值的转换,读取的就是数值类型。把需要代码控制的组件(静态标签除外的所有组件),修改合适的名称。3). 注意数据的范围,超出范围,输入和输出会导致错误。原创 2024-06-27 16:45:00 · 116 阅读 · 0 评论 -
第七章节 Qt的UI界面设计详解
1)剪贴、拷贝、粘贴的 enable 属性,能够自动的变化: 当编辑器没有选择文本的时候,剪切、拷贝工具最好不能使用(灰色状态) 当编辑器已经选择文本的时候,剪切、拷贝工具能使用(正常状态), 当剪贴板中没有东西可以粘贴进文本编辑器时,粘贴工具最好不能使用。2)下划线工具,斜体工具,粗体工具的复选状态,能够自动变化。还有一些 Action(新建、打开、粗体、斜体等)所需要的槽函数,接受者控件本身没有对应 的方法,就需要生成新的槽函数。用代码创建的组件(字体大小,字体选择),它们的信号槽只能通过代码来实现。原创 2024-06-26 15:15:00 · 560 阅读 · 0 评论 -
第五章节 Qt的顺序容器详解
线性表是:n 个具有相同特性的数据元素的有限序列除了第一个和最后一个数据元素之外,其它数据元素都有一个前驱和后继Qt 的 C++的标准容器进行了进一步的优化,构建了一套自己的容器类:QVectorQList存储在 Qt 容器类中的数据据,要求必须可以做赋值操作,也就是说,必须提供:默认构造函数、复制构造函数、赋值构造函数(赋值运算符重载)有:1) 基本数据类型(int, float, double 等)2) Qt 的数据类型:QString, QDate, QTime 等。原创 2024-06-24 14:45:32 · 178 阅读 · 0 评论 -
第四章节 Qt字符串QString详解
QString 的使用方式和 C++标准库的 std::string 字符串的非常相似。原创 2024-06-24 13:43:28 · 355 阅读 · 0 评论 -
第三章节 Qt的动态属性详解
Qt 框架,为了更方便的处理“属性”,使用“动态属性”机制: 效果:用户不需要知道 get 方法和 set 方法, 只需要了解“属性名”,就可以实现对属性的 读写。不想写 get 方法和 set 方法,但是又想使用属性系统,可以使用 MEMBER. 属性名和 MEMBER 后面的成员变量名,可以相同!以上我们学习的“属性”,其实都是“静态属性”(也是使用 Q_PROPERTY 在类的定义中添 加的属性)3. 访问所有静态属性、访问所有动态属性的方式不同。1. 访问方式相同(读属性,写属性)原创 2024-06-24 13:25:00 · 317 阅读 · 0 评论 -
第二章节 Qt信号与槽的详细分析
信号槽,是Qt的核心机制,用来实现对象之间的通信: 即,某个对象,想通知另一个对象去做某件事情时, 这个对象,就发送某个“信号”, 另一个对象收到这个信号后,就去做之前约定好的那个 特定的事情。信号槽机制有:1)信号的发送者2)信号的接受者3)发送者发送的这个信号(不需要程序员去定义函数体的空壳函数)4)接收者去执行的某个函数(称为:槽)我们要做:1.信号槽需要在使用之前,做好关联(信号和槽之间的关联)2.发送者在需要的时候,发送这个信号。原创 2024-06-21 22:06:45 · 315 阅读 · 0 评论 -
第一章节 Qt概述
最容易入行做C++的核心技术模块。原创 2024-06-21 21:45:01 · 338 阅读 · 0 评论 -
第四章节 Qt容器介绍和使用
新建桌面应用程序,基类选择QWidget,widget.cpp添加头文件。原创 2024-06-21 10:22:26 · 180 阅读 · 0 评论 -
第三章节 Qt窗口部件以及布局管理器
通常,我们连接默认按钮,例如“OK”到accept()槽并且把“Cancel”连接到reject()槽,来使对话框关闭并且返回适当的值。拉伸因子描述了各个部件在进行拉伸时,部件间以指定的比例进行拉伸,如水平布局的三个按钮其拉伸因子分别设为1,2,3则表示该3个按钮将会以1:2:3的比例进行拉伸。QRadioButton 单选按钮类,只能选一个,当将单选按钮加入一个分组框中时,加入的按钮便是一个分组,分组中只能选中一个,具有排他性。如下图标签与按钮建立了伙伴关系,则按下快捷键Alt+P时,按钮便被按下了。原创 2024-06-20 16:21:29 · 106 阅读 · 0 评论 -
第二章节 Qt的元对象系统
信号和槽机制是 QT 的核心机制,信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,信号和槽是QT自行定义的一种通信机制,它独立于标准的 C/C++ 语言,要正确的处理信号和槽,必须借助一个称为 moc(Meta-Object Compiler),也就是“元对象编译器”。分析Q_OBJECT后,发现都是在操作元对象,并没有所谓的信号和槽,属性等内容,很显然,QObject对象能够支持这些功能,必然是通过QMetaObject这个元对象来实现的。编程的基础,也是 Qt 的一大创新。原创 2024-06-19 17:16:00 · 124 阅读 · 0 评论