- 博客(48)
- 收藏
- 关注
原创 QFile和QFileInfo
对文件进行读写操作实现:点击按钮弹出桌面,然后选取文件,将文件路径放入lineEdit,文件内容放入textEdit。
2025-04-14 21:05:55
329
原创 Qt绘图事件
先画出第一个矩形,移动画家,保存画家当前状态,继续画第二个矩形,移动画家,在此时还原画家状态,画家就回到了刚刚保存的状态,继续画第三个圆,所以第二个和第三个圆就重叠了。利用的是画椭圆的函数,第一个参数表示圆心,第二个参数表示横轴的长度,第三个参数表示纵轴的长度。第一个和第二个参数分别表示起点的横纵坐标,第三个和第四个参数分别表示矩形的长宽。需要先设置画笔,再让画家使用这个笔,最后进行绘画操作。画出一条从(0,0)到(100,100)的线。首先画一个矩形框,然后在矩形框中写文字。同理画出三个这样的矩形。
2025-04-13 11:07:03
682
原创 event事件分发器
事件分发器就是实现分发事件的一个函数,返回值是bool类型,如果返回true则表示用户要处理事件,不再对事件向下分发,实现对事件的一个过滤功能event()函数是事件分发系统的核心之一。它负责接收和处理来自操作系统的各种事件,如键盘输入、鼠标事件、窗口事件等。event()函数是或其子类(例如QWidgetQWindow等)中的虚函数,用于处理和分发事件。Qt 的事件系统是基于事件队列和事件循环的,当用户与界面交互时,相关的事件(如鼠标点击、键盘按键等)会被添加到事件队列中,然后通过event()
2025-04-11 13:41:00
203
原创 常用控件的使用
布局,分为垂直布局,水平布局,栅格布局,表单布局,可以直接将要布局的一些组件拖拽到里面,便可以自动完成布局但是一般我们不使用这种方法,我们会使用widget,将要布局的组件拖拽到widget里面再进行布局,更加灵活。
2025-04-08 21:47:57
842
原创 登录窗口布局
将密码和后面的line edit拖拽到widget里面(可以看右上角的对象查看器,看是否将两个 控件都拖进去了),点击上方的水平布局。还是拖拽一个widget到窗口中,将用户名、密码和line edit拖拽进去,删掉弹簧,进行栅格布局。我们发现用户名和密码的那一行因为字数不同,没有对齐,想要重新布局就要先分拆布局。没有点击水平或垂直布局的右下角会有红色的圆圈,布局好的就没有。特别的,将两个按钮中间的空隙固定,不随窗口的缩放而变化。先点击MainWindow,再点击上方的垂直布局。同理,将下面的也修改一下。
2025-04-07 16:20:25
301
原创 Qt添加资源文件
点击界面下方的Action编辑器,将actionnew和actionopen拖拽到工具栏。例如:点击”文件“-双击在这里输入-输入”new“,同理添加”open“点击菜单-双击在这里输入-输入菜单项的名字(注意:此处只能输入英文)利用界面文件完成一个有菜单栏,工具栏,中心部件,铆接部件的界面。点击添加文件,打开我们新建的Image,选择所有的图片。点击添加前缀,可以自己写一个前缀,也可以采用他给的。双击”在这里输入“-输入”文件“-回车。即拥有两个菜单:”文件“,”编辑“会添加一个.qrc的文件。
2025-04-04 17:19:47
821
原创 Qt弹出新窗口并关闭(一个按钮)
实现:一个按钮,点击一次,按钮的名字从open window变为close window,并且弹出一个新窗口;再次点击,按钮名字从close window变为open window,并且关闭新窗口。
2025-03-27 17:28:25
639
原创 Qt弹出新窗口并关闭(两个按钮)
实现:两个按钮,点击第一个按钮open window打开一个新窗口,点击第二个窗口close window关闭新窗口。
2025-03-27 14:56:00
769
原创 信号槽连接拓展
5.信号和槽的参数个数 是否一致 信号的参数个数可以多于槽函数的参数个数。4.信号和槽函数的参数类型必须一一对应。3.多个信号 可以连接 同一个槽函数。2.一个信号可以连接多个槽函数。1.信号是可以连接信号。
2025-03-20 18:25:31
94
原创 信号连接信号
这一行代码是将按钮点击信号和老师饿了信号连接起来,而connect(zt,teacherSignal2,st,studentSlot2);这一行代码是将老师饿了的信号和学生请客这个槽函数连接起来。使用disconnect()函数,参数和connect中的参数一样,断开哪一部分就填哪一部分的连接参数。尝试用无参的hungry和treat,用函数指针来代替他们的地址。思考:可不可以不要下课这个函数,而是直接用信号连接信号呢。实现:点击一个下课的按钮,再触发下课。再写一个信号连接信号的。
2025-03-20 17:48:57
408
原创 自定义的信号和槽发生重载的解决
我们可以看到宫保鸡丁加了双引号,要想去掉就得把QString->char * ,即先转成QByteArray(.toUtf8()),再转char* (data())运行发现会报错,因为连接函数中老师饿了的函数地址和学生请客的函数地址是一样的,编译器无法区分。即出现重载,在连接信号和槽就要自己通过函数指针处理一下,来区分是有参数的还是没有参数的。我们已知指针可以指向地址,所以我们可以用函数指针指向函数地址。这时双引号就去掉了。
2025-03-20 14:29:24
144
原创 自定义的信号和槽
返回值是void,需要声明,也需要实现可以有参数 可以重载写到public slot下(老版本)或者public或者全局函数emit 自定义信号。
2025-03-19 18:31:52
317
原创 信号和槽的初步认识
2.信号槽的优点:松散耦合(信号发送槽和接受槽本身是没有关联的,通过connect连接,将两端耦合在一起)语法:connect(信号的发送者,发送的具体信号,信号的接受者,信号的处理(槽))点击了”我自己的按钮“这个窗口就会关闭。1.连接函数connect。
2025-03-19 16:34:01
153
原创 Qt对象树
当创建的对象在堆区时,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,会将对象放到对象树中。QObject 的构造函数中会传入一个 Parent 父对象指针,children() 函数返回 QObjectList。即每一个 QObject 对象有且仅有一个父对象,但可以有很多个子对象。按照这种形式排列就会形成一个对象树的结构,最上层是父对象,下面是子对象,在再下面是孙子对象,以此类推。这样设计的好处是:方便内存管理。
2025-03-19 14:46:09
273
原创 Qt Creator入门
选择创建项目-Application(Qt)-Qt Widgets Application-修改名称即可默认创建有窗口类,myWidget,基类有三种选择:QWidget,QMainWindow,QDialog。
2025-03-18 15:36:41
272
原创 逆置单链表、二叉树最大路径、两个正整数x、y的最大公约数
例如,对于如图2.20所示的二叉树,路径和最大的一条路径是5→4→6,路径和为15。:通过对比递归与非递归的实现,我们更加清晰地认识到递归的简洁性和非递归在控制栈空间方面的优势。cout
2024-12-06 11:21:08
624
原创 进程管理
(1)加深对进程概念的理解,明确进程和程序的区别(2)进一步认识并发执行的实质1.进程的创建 fork()格式:pid=fork()功能:创建一个新进程,新进程与父进程具有相同的代码,父子进程都从fork()之后的那条语句开始执行。2.进程的终止 exit()格式:exit(status)功能:终止当前进程的执行,status是一个整数,其值可以返回父进程。3.进程的同步 wait()格式:wait()功能:父进程进入睡眠态,当子进程终止时被唤醒。4.进程的延迟 sleep()
2024-12-06 11:14:33
689
原创 操作系统用户界面
LINUX操作系统提供了图形用户界面和命令行界面,本实验主要熟悉命令行界面,为后续的实验编程做准备。写出每个命令的功能及格式功能:1.一次显示整个文件。2.从键盘创建一个文件。只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件。格式:说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)参数:-n 或 –number 由 1 开始对所有输出的行数编号-b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号。
2024-12-06 11:07:25
933
原创 PyTorch求导相关
PyTorch是动态图,即计算图的搭建和运算是同时的,随时可以输出结果;而TensorFlow是静态图。在pytorch的计算图里只有两种元素:数据(tensor)和 运算(operation)运算包括了:加减乘除、开方、幂指对、三角函数等可求导运算(leaf node)和;叶子节点是用户创建的节点,不依赖其它节点;它们表现出来的区别在于反向传播结束之后,非叶子节点的梯度会被释放掉,只保留叶子节点的梯度,这样就节省了内存。如果想要保留非叶子节点的梯度,可以使用方法。
2024-10-23 21:11:08
1109
原创 detach()
在训练神经网络时,我们需要通过反向传播算法来计算每个参数的梯度,以便使用这些梯度来更新模型的权重。:在某些情况下,你可能只想使用模型的一部分输出来进行某些计算,而不希望这部分计算影响到整个模型的梯度更新。是一个在PyTorch中非常有用的方法,它允许你灵活地控制计算图和梯度流,从而实现更复杂的模型和训练策略。:在深度学习中,模型的前向传播过程可以看作是在构建一个计算图,图中的节点代表变量或操作,边代表数据流向。将不会在其上进行梯度计算,也就是说,它不会参与到反向传播过程中。的梯度计算,反之亦然。
2024-10-15 22:22:23
311
原创 【linux】cat命令详解
cat命令是 Unix/Linux 系统中常用的命令,用于连接文件并输出内容,主要用于查看、创建、合并文件内容,以及将文件内容输出到标准输出设备(通常是屏幕)或另一个文件中。
2024-09-18 20:34:45
796
1
原创 使用百度ai人脸库实现人脸识别
本项目利用百度AI的人脸识别技术,开发了一个可以进行人脸识别的应用程序。项目涉及网络连接、文件处理、图像处理、数据库管理及音视频处理等多个技术领域。本文将详细介绍项目的整体架构和实现过程。
2024-06-19 12:40:02
1332
原创 winform & fluent UI
全称:Windows Forms平台:主要用于Windows操作系统的桌面应用程序开发。语言:通常使用C#或VB.NET。历史:WinForms是微软的一个较老的UI框架,最早在2002年随.NET Framework 1.0发布。全称:Fluent User Interface平台:主要用于Web应用程序开发,但也有桌面版本。语言:通常使用JavaScript/TypeScript,通过React库进行开发。
2024-06-18 20:24:31
1290
原创 【C#】字符串处理器
的字符串处理器,它包含了统计字符串中单词数量、查找最长单词及其长度、将字符串中所有单词的首字母大写以及将字符串中所有单词反转的功能。我们通过手动实现了字符串拆分、单词数量统计、查找最长单词、首字母大写和单词反转等功能,并提供了简单的命令行界面来测试这些功能。这个字符串处理器可以帮助用户方便地对输入的字符串进行各种处理操作,例如统计单词数量、修改单词格式等。希望这个总结能够帮助你更好地理解这个实验的设计与实现过程。统计单词数量,查找最长单词及其长度,首字母大写,反转单词,退出。我们设计并实现了一个名为。
2024-06-18 20:06:28
461
原创 【C#】汽车租赁系统
例如,在租车和归还车辆时,我计算了相应的租金,并更新了车辆的状态。:在开始编写代码之前,我首先进行了系统的需求分析。我明确了系统需要支持的功能,包括添加车辆、查找车辆、租车、归还车辆和展示所有车辆信息。:我也考虑了一些可能出现的错误情况,比如添加重复车牌号的车辆、找不到指定车辆等情况,并在程序中进行了相应的错误处理和提示。类用于管理整个租赁系统,包括添加车辆、查找车辆、租赁车辆、归还车辆和显示所有车辆信息。主要分为7种情况:增加车辆,根据车牌号查找车辆,根据种类查找车辆,借车,还车,展示所有的车辆,退出。
2024-06-18 16:22:29
1401
原创 C#图形图像编程
在本次实验中,我们学习了如何使用 C# 和 WinForms 进行图形图像编程。我们首先学习了如何创建一个基本的 Windows 窗体应用程序,并在窗体上添加控件。接着,我们探讨了如何使用 Graphics 对象来进行绘图操作,包括绘制基本图形和处理文本输出。绘制基本图形:我们学会了如何使用 Graphics 对象在面板上绘制矩形和椭圆,并且掌握了如何使用画笔来设置绘图属性。添加艺术字:我们学会了如何在面板上绘制艺术字,包括设置字体、测量文本尺寸以及使用渐变色来绘制文本。
2024-06-17 13:47:11
1047
原创 C#线程设计
在多线程编程中,多个线程可能同时访问和修改共享数据,如果没有合适的同步机制来保护共享数据,就会导致数据竞争、数据损坏和不确定的行为。线程池是一种管理和复用线程的机制,它在程序启动时创建一定数量的线程,并且维护一个任务队列。另外,了解如何合理地使用线程池、控制并发线程的数量,以及避免线程阻塞和死锁等问题也是实践中需要重点关注的地方。:了解了在多线程环境中保证数据访问和操作的正确性和一致性的重要性,以及常见的线程安全实现方法,如互斥锁、原子操作、线程安全的数据结构等。最下面的就是button。
2024-06-07 09:21:58
1075
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人