自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 《四》实现动态时间、歌曲信息动态字幕和总结

新手尝试,还有很多地方不足,比如:当你搜索的歌曲无法播放时,进程可能会卡死退出,也没有任何提示,搜是搜得到,后续也会慢慢去改进。本篇内容也是对之前学习的总结,也能帮助更好的去学习如何使用api去实现自己想要的功能。

2024-05-18 16:10:20 495

原创 《三》MP3添加歌曲、播放、上一曲等操作的实现

在上一期中我们实现了搜索歌曲,那么这一期我们来实现播放他。

2024-05-18 15:06:57 416

原创 《二》MP3在线搜索所歌曲的实现

初始化这些操作包括了把光标设置在搜索栏中,对富文本的处理也就是 对歌曲列表中的数据进行处理,然后就是当歌曲进度条位置发生改变时,对时间,播放的歌曲等进行槽函数的连接。首先呢,我们是设计多媒体,要包含多媒体类头文件,还要能在线搜索,那就要包含网络上的头文件,还要实现打开文件操作,处理文本块,计时器等操作,我们要加上头文件。既然成员变量有了,那我们还缺一些槽函数去处理这些,主要包括进度条的变化,时间的变化,既然是在线 搜索,还要处理返回的数据。答:我们要定义错误信息来处理他。数据的所有内容,我们可以通过。

2024-05-17 22:21:50 830

原创 《一》MP3整体布局设计以及拖动窗口实现

上一期我们做完了Word文档的设计与实现,那么这一期我们实现一个MP3播放器,前面的QT专栏里我们已经设计过一个,这一期呢,是对它的内容上的增加与回顾。

2024-05-17 19:48:24 1116

原创 《五》Word文件编辑软件调试及测试

上一期,我们已经把大致的框架给完成了,那么今天,我们就把剩下的什么复制啊,改变字体啊什么的给做一下。

2024-05-15 12:30:46 900

原创 《四》系统模块整体功能关联与实现

相比,foreach更加易读、易写、易错,由此减少代码出错的概率。Qt foreach在Qt 4.0中被引入,可以用于遍历数组、QList、QVector、QSet、QMap和QHash等容器类型。在上一篇里,我们完成了动作的创建,那么这一次,我们把它加载到界面上,把需要是实现的动作都加上。的addMenu函数添加,再往里面添加动作,顺便还添加了分隔符。把他们连接到对应槽函数,我们一步一步去实现就好了,还有其他一些动作的函数没有实现,下一期就写出来!在窗口这个动作里,我们链接函数就好了。

2024-05-14 19:52:43 401

原创 《三》菜单栏_工具栏_状态栏动作与实现

有足足。。。。。辣么多。QMdiArea(Multiple Document Interface Area)是Qt中用于创建多文档界面的组件。它提供了一种在单个窗口中管理多个文档的方式,每个文档通常是一个子窗口(QMdiSubWindow)。该组件主要用于设计多文档界面应用程序,具备有多种窗体展示风格,实现了在父窗体中内嵌多种子窗体的功能,使开发者能够轻松地创建支持多个文档的应用程序。就像你可以在桌面上打开好几个浏览器,文档等等页面一样,而不是每次只能打开一个。

2024-05-13 20:21:36 993 1

原创 《二》菜单模块设计实现---添加动作函数等

在使用QPaintDialog的时候要在pro文件里添加:不然会报错。可以根据不同的情况自己定义。

2024-05-13 16:53:23 229

原创 《一》Word文字编辑软件---架构设计分析

今天,我们来模拟offic软件中的word文档,运行如图:运行程序后会出现主界面,顶端的菜单栏包括“文件”“编辑”“格式”“窗口”和“帮助五个主菜单。菜单栏下面是工具栏,包含了系统常用的功能按钮。工具栏有四个工具条,分别将一组相关功能按钮或控件组织在一起。工具栏的第一行有三个工具条: 第一个工具条包括新建、打开、保存、打印等文档管理功能,第二个工具条包括撤销、重做、剪切、复制和粘贴这些最基本的文本编辑功能,

2024-05-13 13:27:40 966

原创 《六》MySQL---复合查询

实际开发中往往数据来自不同的表,所以需要多表查询。本节我们用一个简单的公司管理系统,有三张表EMP,DEPT,SALGRADE来演示如何进行多表查询。多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的。在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。但是我们发现表里面有很多不合法的数据,所以我们需要将数据筛选出合法的数据。any{集合} 集合中的任意一个。

2024-05-12 13:37:06 828

原创 《五》MySQL---内置函数

说明:在数据库中绝对不用明文存储用户的密码,绝对存储的都是经过password函数计算过的值,当前端页面接收到用户密码的时候,经过password函数计算后在服务器端进行比对。这个md5摘要就是,https里面CA机构对服务端申请的证书明⽂数据进⾏hash,形成数据摘要,用的可能就是md5。值得注意的是:生成的随机数范围在0-1之间。比如:字母,数字算作一个字节,中文表示多个字节数。如果val1为null,返回val2,否则返回val1的值。在日期的基础上加日期:在24-5-1加上50天。

2024-05-11 22:57:11 964

原创 《四》MySQL基本查询

表查询操作是数据库中最重要的操作(没有之一),可以说对于数据库,每天的工作就是组合各种各样的查询语句进行不同场景的数据查询。

2024-05-11 20:29:58 1124

原创 《三》MySQL 数据表的约束

为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。以上五种约束条件针对表中字段进行限制从而保证数据表中数据的正确性和唯一性。换句话说,表的约束实际上就是表中数据的限制条件。

2024-05-11 15:47:43 790

原创 《二》MySQL数据库,数据表的基本操作

数据库创建成功后可在该数据库中创建数据表(简称为表)存储数据。请注意:在操作数据表之前应使用“USE 数据库名;”指定操作是在哪个数据库中进行先关操作,否则会抛出“No database selected”错误。有时,希望对表中的某些信息进行修改,例如:修改表名、修改字段名、修改字段 数据类型…在MySQL中使用alter table修改数据表.MySQL安装完成后,要想将数据存储到数据库的表中,首先要创建一个数据库。

2024-05-10 23:24:34 419

原创 《一》SQL的简单介绍

Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性。

2024-05-10 22:52:50 692

原创 《二十三》Qt 简单小项目---视频播放器

我们需要在pro文件中先添加:随后我们添加一个C++类,基类选择public:private:protected://键盘按键事件,当按键按下esc退出全屏//鼠标按键时间,点击暂停和播放//设置播放器操作void QMySelfVideo::keyPressEvent(QKeyEvent *event)//当播放器为全屏的时候,我们按下esc就可以退出全屏。

2024-05-09 13:29:12 2633 3

原创 《二十二》Qt 音频编程实战---做一个音频播放器

到这里基本是一个简单的音乐播放器就基本实现了,虽然里面有很多功能写的不是很详细,也有一部分操作我没有做,但是基本能实现播放、暂停、切换等基本功能。如果后期需要对播放器的功能进行添加可以自行添加,比方说,QT有自带的视频播放功能,可以将中间的GIF图片换成播放歌曲的MV,还可以添加一个comboBox控件来选择当前播放器的播放模式,QT有内置的宏可以直接设置,我这里是直接选择的循环播放。

2024-05-09 12:49:57 1884 2

原创 《二十一》QT QML编程基础

QML(Qt Meta-Object Language)是一种声明性语言,它被用于描述Qt框架中用户界面的结构和行为。QML提供了一种简洁、灵活的方式来创建动态和交互式的界面。QML基于JavaScript语法,通过使用QML类型和属性来定义界面的元素和行为。它支持嵌套和组合,使开发人员可以轻松地创建复杂的界面和动画效果。与传统的基于代码的GUI开发相比,使用QML可以更快速地构建用户界面,因为它提供了丰富的可重用组件和内置的动画和过渡效果。

2024-05-08 23:16:39 1215

原创 《二十》Qt QChart图标的使用

视图组件(画布),无法单独进行显示,需要依附其他组件进行显示,如在窗口设计界面先放置一个QGraphicsView组件,然后升级为QChartView;随后QChartView通过setChart将QChart添加为显示的图表。2、QChart代表一个图表对象,可以包含一个或多个QAbstractSeries(系列)对象。它提供了管理和控制图表的方法,如添加/移除系列、设置图表标题、轴标签等。是所有系列类的基类,代表图表中的一个系列。

2024-05-08 22:40:05 852

原创 《十九》Qt Http协议及实战

本篇文章来给大家讲解QT中的Http协议,Http协议主要用于网络中数据的请求和响应,那么这篇文章将给大家讲解一下这个协议。HTTP(超文本传输协议)是互联网上应用最为广泛的协议之一,它定义了客户端和服务器之间进行通信的规则。HTTP是一种无状态的协议,它通过请求-响应模型来实现客户端和服务器之间的数据传输。以下是HTTP的一般工作流程:1.客户端发送HTTP请求:客户端(通常是Web浏览器)向服务器发送HTTP请求。请求方法(GET、POST、PUT、DELETE等):指定服务器执行的操作类型。

2024-05-07 23:01:15 1124

原创 《十八》QThread多线程组件

本章将重点介绍如何运用QThread组件实现多线程功能。多线程技术在程序开发中尤为常用,Qt框架中提供了QThread库来实现多线程功能。当你需要使用QThread时,需包含QThread模块,以下是QThread类的一些主要成员函数和槽函数。成员函数/槽函数~QThread()void run()当我们需要创建线程时,通常第一步则是要继承QThread类,并重写类内的run()方法,在run()方法中,你可以编写需要在新线程中执行的代码。

2024-05-07 22:34:57 678

原创 《十七》QUdpSocket网络通信组件

Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的网络通信功能。与QTcpSocket组件功能类似,QUdpSocket组件是 Qt 中用于实现用户数据报协议(UDP,User Datagram Protocol)通信的类。

2024-05-07 22:09:23 803

原创 《十六》QT TCP协议工作原理和实战

Qt 是一个跨平台C++开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信功能。QTcpSocket和QTcpServer是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。

2024-05-05 17:07:00 1548

原创 《十五》QT 网络编程之主机信息查询(QHostInfo 和 QNetworkInterface类)

Qt 网络模块提供了用于编写 TCP/IP 客户端和服务器端程序的各种类,如用于 TCP 通信的QTcpSocket和QTcpServer,用于 UDP 通信的QUdpSocket,还有用于实现 HTTP、FTP 等普通网络协议的高级类如 QNetworkRequest,QNetworkReply 和QNetworkAccessManager。Qt 网络模块还提供用于网络代理、网络承载管理的类,提供基于安全套接字层(Secure Sockets Layer,SSL)协议的安全网络通信的类。

2024-05-04 22:34:19 948

原创 《十四》QT Graphics View图形视图框架

场景类提供了一个用于管理位于其中的众多图元容器,视图类用于显示场景中的图元,一个场景可以通过多个视图表现,一个场景包括多个几何图形。根据需要,Qt提供了这三个坐标系之间的互相转换函数,以及图元与图元之间的转换函数,若需从QGraphicstem坐标系中的某点坐标转换到场景中的坐标,则可调用QGraphicstem 的mapToScene( )函数进行映射。场景类主要完成的工作包括提供对它包含的图元的操作接口和传递事件、管理各个图元的状态(如选择和焦点处理)、提供无变换的绘制功能(如打印)等。

2024-05-03 22:05:13 1094

原创 《十三》QT绘图原理双缓冲机制

首先,声明一个构造函数、一个用于创建工具栏的函数 createToolBar()、一个用于进行选择线型风格的槽函数 showStyle() 和一个用于进行颜色选择的槽函数 showColor()。因为绘图的大小并没有改变,还是原来绘制区窗口的大小,所以在窗体尺寸变化时应及时调整用于绘制的 QPixmap 对象的大小。(2)setStyle() 函数接收主窗口传来的线型风格参数,setWidth() 函数接收主窗口传来的线宽参数值,setColor() 函数接收主窗口传来的画笔颜色值。

2024-05-03 21:26:52 1207

原创 《十二》Qt各种对话框之FileDialog文件对话框及QMessageBox 消息对话框

defaultButton 是缺省选择的按钮,缺省表示没有选择。选择己有目录可调用静态函数 QFileDialog::getExistingDirectory(),同样,若需要传递对话框标题和初始路径,还应传递一个选项,一般用 QFileDialog::ShowDirsOnly,表示对话框中只显示目录。QMessageBox::question() 函数用于打开一个选择对话框,提示信息,并提供 Yes、No、OK、Cancel 等按钮,用户单击某个按钮返回选择,如常见的文件保存确认对话框如图所示。

2024-05-02 21:56:02 1546

原创 《十一》Qt各种对话框之QInputDialog

用户输入完毕后,将输入的学号赋值给strTest变量。参数里 parent 是父窗口指针,title 为对话框标题栏文本,label 是提示标签的文本,value 是初始值,min 为整数范围下限,max 是整数范围上限,step 是旋钮框的步进,ok 指针用于指向表示点击“OK”或“Cancel”的状态变量,flags 是窗口标志位。上图标题栏文本 title 为“设置整数”,对话框带的提示标签 label 为“请输入整数值”,两个按钮显示默认的“OK”和“Cancel”文本。

2024-04-27 22:04:16 2014

原创 《十》Qt各种对话框之QFontDialog

在介绍 QFontDialog 对话框之前,我们先简单介绍一下 QFont 字体类。QFont 主要用于控制文本显示的字体,字体主要有四大属性:①字体家族 family 决定字体外观家族,比如宋体、楷体等;②字号 pointSize (磅数)决定字显示的尺寸大小,字号 1 磅等于 1/72 英寸;③字重 weight 决定字笔画的粗细;④斜体 italic 决定是否倾斜显示文字。第一个默认构造函数不是构造空白的字体对象,而是根据应用程序默认字体构造新对象,比如宋体9号字体对象。第二个构造函数四

2024-04-24 21:17:44 929

原创 《九》Qt各种对话框之QColorDialog

类继承于QDialog,是一个设计用来选择颜色的对话框部件。

2024-04-24 21:02:12 1136

原创 《八》QSplitter拆分器以及QDockWidget窗口详解

QSplitter拆分器允许用户通过拖动子部件之间的边界来控制它们的大小。单个拆分器可以控制任意数量的小部件。QSplitter的典型用法是创建几个小部件,并使用insertWidget()或addWidget()添加它们。QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。QDockWidget类提供了dock widget的概念,dock widget也就是我们熟悉的工具面板或者是工具窗口。

2024-04-18 21:34:33 1263

原创 《七》布局QLayout类

QLayout是由具体类 QBoxLayout和 QStackedLayout继承的抽象基类。对于 QLayout子类或 QMainWindow的用户,很少需要使用 QLayout 提供的基本功能,例如 setSizeConstraint() 或 setMenuBar()。Qt 布局系统提供了一种简单而强大的方法,可以在控件内自动排列子控件,以确保它们充分利用可用空间。Qt 包含一组布局管理类,用于描述控件在应用程序用户界面中的布局方式。

2024-04-18 20:43:34 968

原创 《六》输入组控件InputWidget---Combo Box

元素,用于输入和显示文字和数字等的数据。这些小部件可以组成各种不同的表单和对话框,用户可以使用这些小部件与程序交互。其中 QMessageBox用于提示信息的一个对话框,添加yes或no选项。像这样,当我们点击的时候会出现下拉框,添加自己的内容到上面去,进行选择。()的一个子类,但是它的内容是不能被编辑的,主要是用来选择字体。是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框。以下是Qt Input Widgets的一些。Qt Input Widgets是一组。这两个信号只是传递的参数不同,

2024-04-16 21:08:04 983

原创 《五》QListWidget列表框

语法层面上分析,可以不为 QListWidget 列表指定父窗口,那么它将作为一个独立的窗口。但实际开发中,通常会为 QListWidget 列表指定一个父窗口(例如 QWidget 窗口),它将作为父窗口中的一个子控件,和窗口中的其它控件一起搭配使用。QListWidget 列表控件可以显示多份数据,每份数据习惯称为列表项(简称项),每个列表项都是 QListWidgetItem 类的实例对象。对于给定的 QlistWidget 列表,用户可以选中其中的一个或者某些列表项,甚至还可以修改列表项中的内容。

2024-04-12 19:33:34 1021

原创 《四》QLineEdit单行输入框

contents 参数用于指定输入框中的文本内容;parent 参数用于指定新建输入框控件的父窗口,新建输入框将会内嵌到父窗口上,作为父窗口的一个子控件。当然,我们也可以不指定父窗口,那么新建的输入框就会作为独立的窗口。实际开发中,我们经常用到 QLineEdit 输入框,比如接收用户输入的个人信息、账户信息、角色名称等,就可以用 QLineEdit 实现。QLineEdit 类的内部提供了很多实用的属性和方法,同时还从。创建一个登陆界面:包含输入账号框和密码框。父类处继承了一些属性和方法。

2024-04-12 19:11:37 301

原创 《三》按钮---PushButton和信号槽机制

声明在类的signals域下没有返回值,void类型的函数只有函数声明,没有定义可以有参数,可以重载通过emit关键字来触发信号,形式:emit object->sig(参数);

2024-04-12 10:29:21 926

原创 《二》Qt Creator工具介绍与使用

我们点击pro查看以下第1行 表示使用qt的core和gui库,如果以后我们想用其他的库,可以往这里添加。第3行 表示如果qt的版本大于4,则引入widgets库,因为qt4之前的版本widgets库是不需要引用的,qt4之后需要引用。main.cpp \18行主要是告诉编译器要编译的源文件22行告诉编译器要编译的头文件FORMS += \25行FORMS 描述了要用到哪些ui文件。.pro文件的规则:1.注释从“#”开始,到这一行结束。2.模块引入。

2024-04-12 08:58:08 937

原创 《一》Qt的概述

Qt是一个的C++。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。

2024-04-11 20:03:11 568

原创 项目日记<二> 定长内存池的实现

malloc其实就是一个通用的内存池,在什么场景下都可以使用,但这也意味着malloc在什么场景下都不会有很高的性能,因为malloc并不是针对某种场景专门设计的。定长内存池就是针对固定大小内存块的申请和释放的内存池,由于定长内存池只需要支持固定大小内存块的申请和释放,因此我们可以将其性能做到极致,并且在实现定长内存池时不需要考虑内存碎片等问题,因为我们申请/释放的都是固定大小的内存块。我们可以通过实现定长内存池来熟悉一下对简单内存池的控制,其次,这个定长内存池后面会作为高并发内存池的一个基础组件。

2024-02-08 13:47:02 1046 2

原创 项目日记<一> 高并发内存池的介绍

在说内存池之前,我们得先了解一下“池化技术”。所谓“池化技术”,就是程序先向系统申请过量的资源,然后自己进行管理,以备不时之需。之所以要申请过量的资源,是因为申请和释放资源都有较大的开销,不如提前申请一些资源放入“池”中,当需要资源时直接从“池”中获取,不需要时就将该资源重新放回“池”中即可。这样使用时就会变得非常快捷,可以大大提高程序的运行效率。在计算机中,有很多使用“池”这种技术的地方,除了内存池之外,还有连接池、线程池、对象池等。

2024-02-03 20:28:40 731 1

简易版-人机#字游戏,初次尝试

简易版-人机#字游戏,初次尝试

2023-06-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除