- 博客(18)
- 资源 (2)
- 收藏
- 关注

原创 基于QT的网络音乐播放器(四)
关于歌词的显示,其实我的主要思想就是解析歌词部分的字符串。歌词显示分为两部分,一部分是播放器右侧的歌词显示以及下面的桌面歌词的显示。其中桌面歌词让我很难受,想了很久,后面看到一个大佬的一篇文章后才有了思路。先看效果图:其实就是解析lrc歌词字符串。lrc歌词分为两部分,前面部分是时间,后面一部分是歌词。得到时间和歌词,保存下来。我是用两个list保存的,其实后面一想,用map来保存其实更好。...
2018-10-06 19:08:28
18129
47

原创 基于QT的网络音乐播放器(三)
前面说了把主界面的总体设计说了,接下来说一下调用API获取歌曲的url以及歌词等信息。首先我使用的是酷狗的API(调用其他音乐平台的API方法也基本都是差不多的),这个API呢也是我百度找到的。http://songsearch.kugou.com/song_search_v2?keyword=&page=&pagesize=&userid=-1&a
2018-10-06 18:21:57
8160
38

原创 基于QT的网络音乐播放器(二)
前面我对这个音乐播放器已经做了个简单的介绍了(其实就是瞎扯了一波),接下来就是实在货了,这篇我将给大家介绍一下界面的总体布局和QSS的代码。ui界面:QSS代码:/*播放按钮*/QPushButton#play_Btn:!hover{ border-image: url(:/images/play4.png);}QPushButton#play_Btn:hover...
2018-10-02 19:43:00
4090

原创 基于QT的网络音乐播放器(一)
自学Qt已经有一段时间了,但是始终感觉自己还是很弱(其实并不是感觉自己很弱,是自己本来就很弱,哈哈)。自己也照着书上敲了几个例子,但觉得还是要写点东西才能真正运用起来。所以,前段时间就写了个很简单的音乐播放器。我自己...
2018-10-02 19:19:23
5071
1
原创 安卓系统架构学习
一、分层架构图:Google官方提供的经典分层架构图,从下往上依次分为Linux内核、HAL、系统Native库和Android运行时环境、Java框架层以及应用层这5层架构,其中每一层都包含大量的子模块或子系统。系统启动架构图:Android系统启动过程由上图从下往上的一个过程是由Boot Loader引导开机,然后依次进入 ->Kernel->Native->Framework->App二、系统各层说明:1、Loader层:Boot ...
2020-07-22 11:32:57
780
1
原创 DES加密原理详解
加密过程:交换规则表1:交换规则表2:移动表:变换F:输入:32位R0、48位子密钥K1输出:32位扩展置换:32位数据通过扩展置换E从32位扩展为48位,扩展置换通过将原32位数据中的某些位重复出现达到扩展的目的。异或运算:扩展置换的输出(48位)与子密钥(48位)做异或运算,输出为48位S盒置换:将异或运算得到的48位结果数据分成8个6位的块,每块通过对应的一...
2020-03-16 00:44:17
1535
原创 Nginx安装配置相关介绍
安装:安装Nginx前面,首先要安装依赖(注意版本问题,版本不对,可能会报错,Nginx我用的nginx-1.8.0.tar.gz):gzip模块需要zlib库(在http://www.zlib.net/下载http://zlib.net/zlib-1.2.8.tar.gz) (我用的zlib-1.2.11.tar.gz)rewrite模块需要pcre库(在http://www.pcre....
2020-01-07 10:28:39
479
2
原创 Nginx相关概念性东西介绍
Nginx:Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 Nginx 主要提供正向代理、反向代理、负载均衡、动静分离(静态资源服务)等服务。正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。正向代理比较常见的一个例子就是 VPN了。反向代理: 是用来代理服务器的,代理我们要访问的目标服务器。代...
2020-01-07 09:59:29
274
原创 fork()和vfork()
查看系统中正在运行的进程的信息:ps -aux进程状态:进程创建:一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到...
2019-03-03 16:50:23
203
原创 socket编程UDP
服务器端:int sock;char recvbuf[1024] = {0};struct sockaddr_in peeraddr;初始化:sock = socket(PF_INET, SOCK_DGRAM, 0)memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.s...
2019-01-20 19:19:23
336
原创 socket编程TCP/IP
服务器端:int socket_fd, connect_fd;struct sockaddr_in servaddr;初始化:socket_fd = sock(AF_INET, SOCK_STREAM, 0);bzero(&serveraddr, sizeof(serveraddr)); servaddr.sin_family = AF_INET; /设置IPv4通信/s...
2019-01-20 18:40:55
314
原创 VMware虚拟机下CentOS7配置静态IP(超详细)
VMware虚拟机下CentOS7配置静态IP配置文件配置文件进入/etc/sysconfig/network-scripts目录下面(切换到root用户)#cd /etc/sysconfig/network-scripts查看该目录下的文件(ls):需要配置的文件为 ifcfg-ens33(有些主机不同,自己根据自己情况来看,都是 ifcfg-ens 开头的文件)vim i...
2019-01-18 17:57:22
30578
转载 【Qt】Qt5中解决中文乱码
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符串都要用QStrin...
2019-01-02 15:54:40
205
原创 C++STL基本容器的使用(list)
list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上<list>头文件:#include<list>;list属于std命名域的内容,因此需要通过命名限定:using std::list;也可以直接使用全局的命名空间方式:u...
2018-12-09 21:22:08
233
1
原创 C++STL基本容器的使用(vector)
1:关联容器和顺序容器c++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector、list、deque等。其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的内存,基于链表实现。deque与vector类似,但是对于首元素提供删除和插入的双向支持。关联容器主要有map和set。map是key-value形式的,set是单值。map和set只能存放唯一的ke...
2018-12-08 18:12:48
224
原创 C++string的使用总结
抛弃char*的字符串选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(相比起来简单很多)。1.包含头文件首先要使用string这个类,必须包含头文件#include&lt; string&gt;...
2018-12-08 17:48:12
128
原创 C++自定义类模板
C++中有一个重要特性,那就是模板类型。类似于Objective-C中的泛型。C++通过类模板来实现泛型支持。在引入typename之前,class关键字早已在模板申明中被使用。在typename关键字引入后,可以用它来替代class关键字。如:template<class T1, class T2> 和 template<typename T1, typename ...
2018-12-08 17:20:13
1851
原创 C/C++预处理指令
预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。1.&quot;#“和”##&quot;(1).#define PI 3.1415926(2).#define PASTE(n) “asdfg”#n printf(&quot;%s&quot;,PASTE(15...
2018-12-08 16:37:51
307
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人