- 博客(48)
- 收藏
- 关注
转载 Qt容器类-->day10
这个类是所有窗口类的父类, 可以作为独立窗口使用, 也可以内嵌到其它窗口中使用。Qt中的所有控件都属于窗口类, 因此这个类也是所有控件类的基类。注意事项:QSizePolicy尺寸策略,如果父窗口不进行布局的话,子窗口设置尺寸策略是不会生效的。
2024-11-16 14:37:32
76
4
原创 Qt按钮类-->day09
这些信号都按钮被点击之后发射出来的, 只是在细节上有细微的区别, 其中最常用的是 clicked(), 通过鼠标的不同瞬间状态可以发射出pressed() 和 released() 信号, 如果鼠标设置了 check属性, 一般通过 toggled()信号判断当前按钮是选中状态还是非选中状态。QCheckBox是Qt中的复选框按钮, 可以单独使用, 也可以以组的方式使用(同一组可以同时选中多个), 当复选按钮被选中, 再次点击之后可以取消选中状态, 这一点和单选按钮是不同的。
2024-11-15 19:16:34
939
转载 QMainWindow-->day07
链接: https://subingwen.cn/qt/qt-base-window/#5-%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6-qrc。
2024-11-14 22:48:51
45
原创 QWidget和QDialog及其子类-->day06
QWidget类是所有窗口类的父类(控件类是也属于窗口类), 并且QWidget类的父类的QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现内存资源的自动回收。QWidget子类是继承QWidget,相关api也可以直接调api查文档。
2024-11-14 19:11:48
323
原创 常用的c++新特性-->day09
C++11提供了一个原子类型std::atomic,通过这个原子类型管理的内部变量就可以称之为原子变量,我们可以给原子类型指定bool、char、int、long、指针等类型作为模板参数(不支持浮点类型和复合类型)。原子变量会把线程对数据的读、修改和存储变成一个原子操作,线程从内存读数据传给CPU,CPU再同步到物理内存 -> 三步不可拆分互斥锁可以锁任意的数据类型,而原子变量只是针对于整形数据。
2024-11-13 14:08:42
561
原创 QTimer类-->day05
需求分析:点击开始启动定时器,定时器启动之后开始进行周期性定时,当定时器触发一次发出一个timeout信号,通过槽函数把时间写入到laber控件里面去。
2024-11-12 18:28:09
314
原创 C++常用的新特性-->day06
duration表示一段时间间隔,用来记录时间长度,可以表示几秒、几分钟、几个小时的时间间隔。duration的原型如下Rep:这是一个数值类型,表示时钟数(周期)的类型(默认为整形)。若 Rep 是浮点数,则 duration 能使用小数描述时钟周期的数目。
2024-11-12 09:57:10
1037
原创 C++常用的特性-->day05
声明一个类为另外一个类的友元时,不再需要使用class关键字,并且还可以使用类的别名(使用 typedef 或者 using 定义)。
2024-11-11 19:53:17
703
原创 Qt信号和槽-->day04
假设要实现一个类GirlFriend发出hungry信号,一个类Me来接受信号进行处理。1、由于这两个是不同的类,所以应该提供一个窗口类对上面的这两个类进行包装2、在GirlFriend类中只需要声明信号,不需要实现,因为这是信号的发出者3、在Me类的槽函数不仅需要声明也需要实现主窗口头文件Q_OBJECTpublic:private:Me *m_me;主窗口函数实现//>>>>>>>>>>>>>>>>>>通过ui对象可以操纵所创建的按钮。
2024-11-10 16:06:20
1114
原创 c++常用的新特性-->day04
1、默认的构造、析构2、拷贝构造和移动构造3、默认的赋值运算符重载和移动赋值运算符重载且不包含虚函数和虚基类。
2024-11-09 22:56:36
394
原创 常用的c++新特性-->day03
静态断言使用起来非常简单,它接收两个参数:参数1:断言表达式,这个表达式通常需要返回一个 bool值参数2:警告信息,它通常就是一段字符串,在违反断言(表达式为false)时提示该信息。
2024-11-09 20:46:53
442
原创 Qt坐标类时间类-->day03
QDateTime类可以封装日期和时间信息也可以通过这个类得到日期和时间相关的信息, 包括:年, 月, 日, 时, 分, 秒, 毫秒。其实这个类就是QDate 和 QTime 这两个类的结合体。QTime类可以封装时间信息也可以通过这个类得到时间相关的信息, 包括:时, 分, 秒, 毫秒。QDate类可以封装日期信息也可以通过这个类得到日期相关的信息, 包括:年, 月, 日。QLine是一个直线类, 封装了两个坐标点 (两点确定一条直线)QPoint类封装了我们常用用到的坐标点 (x, y)
2024-11-09 11:15:42
601
原创 手写线程池c
使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。
2024-11-08 22:32:05
305
原创 Qt入门-->Day01
关闭流程2:TestDialog 可能是被延迟销毁: 在 Qt 中,当父窗口关闭时,子窗口一般会在事件循环的后续阶段被销毁。在您的情况中,MainWindow 关闭后,TestDialog 可能被标记为销毁,但在关闭 TestWidget 时,它可能触发了事件循环的进一步执行,从而触发了销毁 TestDialog 的操作。子窗口的位置是基于父窗口的坐标体系来确定的, 也就是说通过父窗口左上角的坐标点来确定自己的位置。Qt中窗口显示的时候使用的相对坐标, 相对于自己的父窗口。大窗口就是这个内嵌窗口的父窗口。
2024-11-08 15:29:58
838
原创 多线程和线程同步复习
线程A得到CPU时间片变成运行态,第一件事儿就是将上次没更新到内存的数据更新到内存,但是这样会导致线程B已经更新到内存的数据被覆盖,活儿白干了,最终导致有些数据会被重复数很多次。使用读写锁分别对两个临界区加了读锁和写锁,两个线程要同时访问者两个临界区,访问写锁临界区的线程继续运行,访问读锁临界区的线程阻塞,因为。此时并没有释放或销毁传递给线程的参数 t。使用读写锁的读锁锁定了临界区,线程对临界区的访问是并行的,读锁是共享的。使用读写锁的写锁锁定了临界区,线程对临界区的访问是串行的,写锁是独占的。
2024-11-07 16:52:21
1031
原创 Qt基础数据类型--Day02
Qt中的控件(按钮, 输入框, 单选框…)也属于窗口, 基类都是QWidget。依附于某一个大的窗口, 作为了大窗口的一部分。需要调用函数才可以显示–>调用show方法。大窗口就是这个内嵌窗口的父窗口。有工具栏, 状态栏, 菜单栏。这类窗口有边框, 有标题栏。
2024-11-06 21:40:14
406
原创 常用的c++特性-->day02
C++11中为我们提供了一个模板类叫做std::enable_shared_from_this,这个类中有一个方法叫做shared_from_this(),通过这个方法可以返回一个共享智能指针,在函数的内部就是使用weak_ptr来监测this对象,并通过调用weak_ptr的lock()方法返回一个shared_ptr对象。通过打印的结果可以知道,虽然弱引用智能指针wp3、wp4、wp5监测的资源是同一个,但是它的引用计数并没有发生任何的变化,也进一步证明了weak_ptr只是监测资源,并不管理资源。
2024-11-06 19:05:59
763
原创 密码学+加解密封装
ssl是Secure Sockets Layer(安全套接层协议)的缩写,可以在Intemet上提供秘密性传输Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。7、包含头文件加的openssl表示子目录,如果你前面配置的include文件的目录时候,openssl的文件是在include文件里面的文件。前面说MD5是16字节,这个的输出结果是16进制字符串的形式,每个字符都转换成16进制的格式再显示出来,两个16进制位占1个字节。),包括主要的密码算法、常用的密钥(
2024-10-27 11:59:13
1247
原创 c++编解码封装
上面这个案例并没有满足需求,假设子类又多了一个,又要在工厂类进行添加---->这是改原来写好的代码。工厂模式的作用是用来创建对象的,那么创建对象的工作实际上是交给了某一个去做。简单工厂:把对象的创建放到一个工厂类中,通过参数来创建不同的对象。工厂: 使用一个单独的类来做创建实例的过程, 这就是工厂。工厂方法:每种产品由一种工厂来创建,一个工厂保存一个new。这样就不需要修改原来的代码,只需要添加新的子类就行了。特点:基本完美,完全遵循 “不改代码”的原则。
2024-10-26 17:29:48
614
原创 c++设计通信类
客户端每隔1s给服务器发送一条数据, 每条数据长度 100字节 , 服务器每隔2s接收一次数据。处理思路:服务器端不负责通信只负责监听,如果通信使用客户端类。Posix 定义了与 select/epoll 和。问题1:这个类不能用,因为只能和一个客户端进行连接。(连接建立时,写缓冲区空闲,所以可写)(由于有未决的错误,从而可读又可写)问题2:服务器端和客户端的代码冗余。,socket 文件描述符变为。,socket 文件描述符。连接过程中写缓冲区不可用。
2024-10-24 17:42:51
346
原创 密钥协商客户端和服务器流程
密钥协商(生成密钥的过程):对数据进行加密的是,加密的数据长度没有限制,密钥分发分发困难,对密钥分发用的是。密钥校验:验证双发使用的密钥是不是同一个。密钥注销:将当前密钥废弃掉。
2024-10-24 10:01:38
1102
转载 常用的c++新特性-->day01
NULL0#elsevoid0c到c++,对语言的类型要求更加严格了,c++不允许将void*隐式转换为其它指针的。
2024-10-23 22:27:18
993
原创 Jsoncpp
尽管 append 接收的是 const Value&,传入的 12(int)并不会直接和引用绑定。C++ 首先会创建一个 Json::Value 类型的临时对象,然后引用绑定到这个临时对象上。因为该引用是 const,它可以安全地绑定到临时对象,这使得隐式类型转换成为可能。
2024-10-23 17:39:29
246
1
原创 uml类图
关联关系是类与类之间最常见的一种关系,它是一种结构化的关系,表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等。在UML类图中,用实线连接有关联关系的对象所对应的类,在C++中通常将一个类的对象作为另一个类的成员变量。关联关系分单向关联、双向关联、自关联,逐一看一下。
2024-10-22 10:44:29
765
原创 网络编程高并发
mac地址6个字节 48位标识网卡的id,理论上这个id全球唯一mac地址一般用来标识主机的id,这个id是物理地址,不会改变。IP地址(ipv4)4个字节 32位如果是ipv6 16个字节 128位IP地址标识主机的ID,这个id是虚拟的是会改变的。IP地址是一种 Internet上的主机编址方式,也称为网际协议地址。IP地址是组成:使用32bit,由{子网 ID,主机 ID}两部分组成。子网ID:IP地址中由子网掩码中1覆盖的连续位。
2024-09-25 21:06:59
1086
原创 linux系统编程
我们平时写的 C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是动态的。在 Linux 系统中,操作系统是通过进程去完成一个一个的任务,进程是管理事务的基本单元。此外进程拥有自己独立的处理环境。
2024-09-19 22:23:18
1059
原创 linux
如果命令中不包含输出可执行文件的文件名,可执行文件的文件名会自动生成一个默认名,Linux平台为a.out,Windows平台为a.exe。tar -tvf sysctl.tar 查询压缩包里面的文件(场景:当遇到大的压缩包的时候 如果里面的文件不需要则先用这个查看)用户只需要更新动态库即可,增量更新。tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。如果通过vi打开一个已经存在的文件,首先进入命令模式,此时输入的任何字符都被视为命令,不能输入内容。
2024-09-15 21:11:24
847
原创 数据结构代码题合集
用顺序表最后一个元素覆盖整个顺序表中最小元素,并返回该最小元素将顺序表的元素逆置将a1,a2,a3……am b1,b2,b3……bn转换成b1,b2,b3……bn a1,a2,a3……am删除顺序表中所有值为x的元素从顺序表中删除给定值再s到t之间(包括s和t)的所有元素删除有序表中所有值重复的元素删除有序表中所有值重复的元素将两个递增有序表 合并为 一个递增有序表求两个递增序列的中位数设计一个时间上尽可能高效的算法,找出数组中未出现的最小正整数若一个整数序列中有过半
2024-04-12 09:32:22
543
原创 MySQL-约束
* status char(1) default ‘1’ comment ‘状态’,不写status,它会设置一个默认值,为‘1’**
2024-04-10 22:48:09
534
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人