- 博客(152)
- 收藏
- 关注
原创 UI文件原理
使用UI文件创建界面很轻松很便捷,他的原理就是每次我们保存UI文件的时候,QtCreator就自动帮我们将UI文件翻译成C++的图形界面创建代码。可以通过以下步骤查看代码。到工程编译目录,一般就是工程同级目录下会生成另一个编译目录,会找到一个带ui_前缀跟ui文件同名的.h文件,这就是代码。在项目MainWindow的构造函数中会调用这个函数来初始化窗口,其实这里边就是初始化我们的各个控件。
2024-02-15 18:16:11
800
原创 QT 工具栏 状态栏 停靠部件 核心部件
删除工具栏方法和删除菜单栏方法一样,不过工具栏可以有多个,所以每次右键MainWindow对象,都可以看到添加工具栏的选项。新添加的QAction对象会在动作编辑器里找到(Action Editor),可以直接拖拽上来添加到工具栏里。从工具箱中拖出一个停靠部件就行。也可以像设定工具栏停靠范围一样,在停靠部件的属性窗口中设定他可以停靠的范围。添加和删除状态栏的方法和添加删除菜单栏方法一样。状态栏添加左侧控件、右侧控件只能通过代码来添加。可以对工具栏设定停靠区域、能否浮动、能否移动等。
2024-02-15 17:24:35
519
原创 QT 菜单栏
在UI界面中添加菜单项只能用英文,因为此时会创建一个QAction对象,会用输入的值作为对象名,所以不能用中文,得添加后再属性窗口改中文。删除后也可以创建菜单栏,此时在对象树中右键MainWindow对象,菜单里边会多了创建菜单栏的功能。点击菜单栏的“在这里输入”可以输入一个菜单名字创建一个菜单。
2024-02-15 11:34:13
683
原创 QMainWindow
QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个停靠部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面。Qt 并没有专门的菜单项类,只是使用一个QAction类,抽象出公共的动作。
2024-02-14 15:58:47
854
原创 Lambda表达式
C++11中的Lambda表达式用于定义匿名的函数对象,以简化编程工作。首先看一下Lambda表达式的基本构成:分为四个部分:[局部变量捕获列表]、(函数参数)、函数额外属性设置opt、函数返回值->retype、{函数主体}[ ],标识一个。由于lambda表达式可以定义在某一个函数体A里边,所以lambda表达式有可能会去访问A函数中的局部变量。中括号里边内容是描述了在lambda表达式里边可以使用的外部局部变量的列表:[]表示lambda表达式不能访问外部函数体的任何局部变量[a]
2024-02-14 15:31:49
986
原创 Qt4版本的信号槽写法
因为直接填入了函数原型,所有这里边编译不会出现因为重载导致的函数指针二义性的问题。但问题是如果函数原型填错了,或者不符合信号槽传参个数类型约定,编译期间也不会报错,只有运行期间才会看到错误log输出。目前编译器还没有那么智能去判断字符串里边的内容符不符合运行条件。这两个宏,宏的参数是信号函数和槽函数的函数原型。这两个宏将后边参数(函数原型)转化成了字符串。
2024-02-13 15:50:23
416
原创 QT 信号和槽的拓展
像上面的例子,可以将一个按钮点击信号连接到关闭窗口的槽函数,同时也连接到学生请吃饭的槽函数,点击按钮的时候可以看到关闭窗口的同时也学生请吃饭的log也打印出来。除此之外,这种信号-信号的形式和信号-槽的形式没有什么区别。函数,只是信号的接收者和槽函数换成另一个信号的发送者和信号函数。如果是这种情况,这些槽会一个接一个的被调用,但是。信号函数的参数类型和槽函数的参数类型必须一一对应。如上面老师饿了的例子,可以新建一个按钮btn。信号函数的参数个数必须大于等于槽函数的参数个数。槽函数调用顺序是不确定的。
2024-02-13 15:44:10
486
原创 QT自定义信号和槽
qt4 必须声明在 private/public/protected slots域下面,qt5之后可以声明public下,同时还可以是静态的成员函数,全局函数,lambda表达式。但是由于有两个重名的自定义信号和自定义的槽,直接连接会报错,所以需要利用函数指针来指向函数地址,,比如说点击某个按钮让另一个按钮的文字改变,这时候标准信号和槽就没有提供这样的函数。在窗口中声明一个公共方法下课,这个方法的调用会触发老师饿了这个信号,而响应槽函数学生请客。信号和槽机制提供了允许我们自己设计自己的信号和槽。
2024-02-13 15:26:34
1026
原创 QT 信号和槽机制
系统自带的信号和槽如何查找呢,这个就需要利用帮助文档了,在帮助文档中比如我们上面的按钮的点击信号,在帮助文档中输入QPushButton,首先我们可以在Contents中寻找关键字 signals,信号的意思,但是我们发现并没有找到,这时候我们应该想到也许这个信号的被父类继承下来的,因此我们去他的父类。按钮最大的功能也就是点击后触发一些事情,比如我们点击按钮,就把当前的窗口给关闭掉,那么在Qt中,这样的功能如何实现。第一行是创建一个关闭按钮,这个之前已经学过,第二行就是核心了,也就是信号槽的使用方式。
2024-02-13 14:45:10
940
原创 QT 对象树模型
然后,代码继续执行,在 window 析构之后,quit 也会被析构,因为 quit 也是一个局部变量,在超出作用域的时候当然也需要析构。这些细节在今后的开发过程中很可能时不时跳出来烦扰一下,所以,我们最好从开始就养成良好习惯,在 Qt 中,尽量在构造的时候就指定 parent 对象,并且大胆在堆上创建。因此,这段代码在超出作用域时,会先调用 quit 的析构函数,将其从父对象 window 的子对象列表中删除,然后才会再调用 window 的析构函数。Qt 引入对象树的概念,在一定程度上解决了内存问题。
2024-02-13 13:55:17
906
原创 Qt窗口坐标体系
以左上角为原点(0,0),以向右的方向为x轴的正方向,以向下方向为y轴的正方向。通过以上代码可以看出Qt的坐标体系。顶层窗口的父窗口就是屏幕。对于嵌套窗口,其坐标是。
2024-02-13 13:15:13
462
原创 按钮的创建和父子关系
类的对象,如果只是创建出对象,是无法显示到窗口中的,所以我们需要依赖一个父窗口,也就是指定一个父亲,利用setParent函数或者按钮创建的时候通过构造函数传参,此时我们称两个窗口建立了。对于窗口而言,我们可以修改左上角窗口的标题setWindowTitle,重新指定窗口大小:resize,或者设置固定的窗口大小setFixedSize。显示的会是一个顶层的窗口(顶层窗口是能够在任务栏中找到的,不依赖于任何一个窗口而独立存在)在Qt程序中,最常用的控件之一就是按钮了,首先我们来看下如何创建一个按钮。
2024-02-13 13:09:22
428
原创 QT .pro文件
引入模块的意思就简单理解为引入C/C++头文件搜索路径,如果没引入对应模块就使用该头文件的话会报错说找不到该头文件。当然不必要的模块还是别引入,因为引入模块不仅仅是引入头文件搜索路径那么简单,还包括引入连接的库等一系列操作,会让程序变臃肿。.pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。QT += 模块名,表示当前项目引入Qt哪些模块。这条语句的含义是,如果。
2024-02-13 12:37:06
890
原创 QT初始程序
等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。所有事件消息处理和调度。应用程序的初始化和结束。
2024-02-08 20:54:24
1244
原创 Qt软件打包后报错“无法定位程序输入点于动态链接库.exe上。”解决办法
该库文件重新复制到 打包完成的文件中进行替换,即可。1:网上解决办法,添加环境变量,对我没有用。关于release打包完后的项目报错。
2024-02-01 21:27:42
853
1
原创 Qt creator 常用快捷键
整行移动代码 ctrl + shift + ↑或↓。跳到符号定义 F2 或者 Ctrl + 鼠标点击。帮助文档 F1 ,点击F1两次跳到帮助界面。同名之间的.h和.cpp文件跳转 F4。字体缩放 ctrl + 鼠标滚轮。自动对齐 ctrl + i。运行 ctrl +R。编译 ctrl +B。Qtcreator常用快捷键。
2024-01-27 14:53:39
539
原创 Qt creator命名规范
3) 函数名字,变量名:首字母小写,之后每个单词首字母大写,单词和单词之间直接连接,无需连接字符。1) 类名:单词首字母大小,单词和单词之间直接连接,无需连接字符。4) 类的成员变量设置函数用使用 set+成员变量名,如:MyClass,QPushButton。2) Qt中内置的类型,头文件和类命名同名。//普通成员变量设置和获取。//bool的成员变量获取。
2024-01-27 14:52:55
509
原创 QT5 Ctrl R按钮无法点击
当使用QT5 Creator加载一个项目并且添加新的现有文件后,无法启动调试自启动/调试按钮,程序的程序或者是灰色的,去除pro文件 以上两个 的反斜杠 \。
2024-01-26 22:02:10
533
原创 计算机网络三个 实验
本部分按照数据链路层、网络层、传输层以及应用层进行分类,共有 10 个实验。需要使用协议分析软件Wireshark进行,请根据简介部分自行下载安装。
2022-12-18 01:30:56
5254
3
原创 javascript & typescript总结
JavaScript是一种用来编写脚本的编程语言,它们可以被直接写在网页的 HTML中,在页面加载的时候自动执行,通常我们在html文件底部的进行代码的编写变量本质上是存储值的容器,我们通常使用关键词var或者let来创建变量3.变量命名JavaScript 的变量命名有两个限制:1.变量名称必须仅包含字母、数字、符号$和_。如果命名包括多个单词,通常采用驼峰式命名法(camelCase),即除了第一个单词,其他的每个单词都以大写字母开头: myFirstName。2.首字符必须非数字。操作符一般
2022-07-09 20:03:30
178
原创 html css 总结
HTML5 doctype为每个 HTML 页面的第一行添加标准模式(standard mode)的声明,这样能够确保在每个浏览器中拥有一致的展现。语言属性根据 HTML5 规范:更多关于 属性的知识可以从 此规范 中了解。这里列出了语言代码表。IE 兼容模式IE 支持通过特定的 标签来确定绘制当前页面所应该采用的 IE 版本。除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的模式。阅读这篇 stack overflow 上的文章可以
2022-07-09 20:01:18
182
原创 2022届蓝桥杯b组省赛答案参考
第一题九进制 1478第二题 题目样例里有210不算 0算不算有点歧义但是我算了 写了14种第三个 longlong 直接暴力 不晓得会不会超限第四个 max i-1 n-i 要乘2第五个 题目我读了一小时才读懂 但是不知道做没做对 我只是取了每一位的最小进制 感觉错了第六个 矩阵emmm六个for循环第七个花格子是dp 和以前刷油漆很像 但是第八个我更有把握 就直接输出一到五的可能第八个 写了两个结构体 以及一个标识炸没炸过然后递归去判断 应该能得一部分 怕后面爆了第九
2022-04-11 00:29:41
721
原创 蓝桥杯2019CB-D-数的分解
【问题描述】把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。【注意】本题是填空题,正式比赛时,只需要把你求得的答案填入考试页面就可以了,可以采用手工演算、计算器、Excel、编程等求解方法。但这里为了实现评判,还是需要编写一个程序,这个程序可以直接把你求得的答案输出。当然,如果你是采用编程方法得到的答案,也可以提交你的完整的求解程
2022-04-04 22:01:57
146
原创 蓝桥杯 2019CB-C-数列求值(同为A组B题)
【问题描述】给定数列1, 1, 1, 3, 5, 9, 17,…,从第4项开始,每项都是前3项的和。求第20190324项的最后4位数字。【注意】本题是填空题,正式比赛时,只需要把你求得的答案填入考试页面就可以了,可以采用手工演算、计算器、Excel、编程等求解方法。但这里为了实现评判,还是需要编写一个程序,这个程序可以直接把你求得的答案输出。当然,如果你是采用编程方法得到的答案,也可以提交你的完整的求解程序。#include<bits/stdc++.h>using namesp
2022-04-04 20:41:58
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅