qtcreator安装的文件路径以及自己编写的qt项目文件路径(包括项目名称)不要出现空格和中文
驾校系统-新建项目
qt有两种方式创建界面,一种是设计模式,一种是自己敲代码
如果要选择设计模式,需要勾选创建界面
.pro是工程文件,如果要打开某个项目,直接打开工程文件就可以
下面这句代码意思是,该项目qt支持核心的图形用户界面的扩展库
下面这句代码意思是,该qt项目支持组件编程的扩展库
当前qt版本超过4
描述的是项目的名字,如果后续要修改项目名称,可以在这里修改
定义了一个宏,表示如果使用了一些过时的api,编译器会发出警告信息
按住ctrl点击类名可以查看类的定义 ,如果提示错误信息,则需要线编译,再按住ctrl点击
这个宏表示当前的类支持信号与槽的一个机制
必须是继承QObject类的类才支持信号与槽的机制
信号与槽的机制是用于不同对象的通信
exec()方法使应用程序对象进入消息循环
点击.ui文件就可以进入设计模式
实现登录界面
拖两个label(标签),起名"账号""密码"
拖两个Line Edit(输入框)
拖两个PushButton(按钮)起名"登陆""取消"
调整宽度和高度,让登陆和取消的宽度高度相同
同样调整两个LineEdit使之相同
添加图片文件
选择图片,添加,ctrl+s保存一下
拖入label,覆盖全部背景
图片遮住了之前的控件怎么办
图片的lable标签撤销,把名字修改为第一个添加的标签名字,再把第一个放入的标签重复插入图片的步骤
撤销按钮
调整几何属性(图片,窗体,标签的宽高设为一致)
设置图片标签的对象名
账号后面的LineEdit的标签
密码后面的LineEdit的标签
登录按钮
取消按钮
图片的内容进行填充
用标签的宽和高设置当前窗体的宽和高
图片标签的x,y设为0
设置窗口标题,设置包含窗口关闭按钮 的普通对话框风格
验证邮箱地址
准备一个数据文件
选择信号
把鼠标放在槽方法上,点击f2,可以切换定义和声明
测试一下
添加一个头文件
information方法:第一个参数:指定一个副窗口(此处指定当前登录窗口为副窗口) ,第二个参数指定提示的标题,第三个参数,需要提示的内容
筛选用户输入的账号是不是邮箱地址
QRegExp是正则表达式类
验证账号密码
隐藏密码
固定窗口大小(不能伸缩拉长)
考试时间
添加新文件
添加头文件
从QObject基类继承来的字类想要 使用信号与槽机制,需要定义宏
布局题库1
准备一个数据文件
元对象系统
信号与槽连接(松耦合)
案例:点击武汉输出"武汉加油" 点击中国输出"中国加油",点击世界输出"世界加油"
声明一个信号
信号只能声明不能实现
生成三个点击按钮并修改名字
生成三个点击按钮对应的槽方法
再声明一个槽方法
信号的参数列表和槽的参数列表一一对应,信号的参数个数大于等于槽的参数个数
在构造函数里连接信号与槽
连接信号与槽的另一种方式
信号与槽连接(一对多)
新增一个槽方法
一对多
信号与槽连接(多对一)
新添加一个信号,此信号没有参数,根据规则,槽方法也不应该有参数
多对一
案例:一个信号的触发会导致另一个信号的出发
信号与槽连接(断开连接)
断开目标对象的所有信号
disconnect(this,0,0,0);
断开具体指定的连接
接收想要断开的连接的返回值
动态属性上
动态属性下(需要重看)
对象树上
父类销毁的时候,会挨个销毁它的子类
对象树下
部件基类-QWidget-窗口风格
widget构造函数有两个参数
第一个参数,给的默认值是0,表示没有父窗口,第二个参数是qt的窗体风格,默认值是0
具体的不同的风格的特点,自行查阅
这句话表示当前项目支持部件编程,支持部件编程所需要的的一些扩展库
ctrl+s保存一下
第二个参数表示对话框风格的无边框的窗体
无边框的窗体没有关闭按钮怎么办
设置窗体状态
以最大化的方式进行显示
部件基类-QWidget-窗口尺寸
1.传一个QSize引用
600指宽,200指高
2.直接传入宽和高
确定位置
1.传入一个Qpoint引用的坐标值,2.直接传坐标值
返回当前位置
获取宽和高
获取几何信息
部件基类-QWidget-尺寸策略
窗体的模态属性
NonModal:非模态,不阻塞其它窗体的输入
此时每个窗体都能正常点击不会阻塞
WindowModal:阻塞父类窗口,所有祖先类窗口,所有兄弟窗口
ApplicationModal:阻塞应用程序所有窗口的输入
此时不能点击w3
等w2窗体关闭之后就可以处理别的窗体
enable
默认是勾选的状态,不勾选的话,当前部件(包括它的子部件)禁用
尺寸策略
如何让这三个按钮垂直布局
选中所有部件后点击这个按钮
点击红色的线,进入布局页面
在布局管理器里就可以随意拉伸
尺寸策略也就是拉伸的策略
横向拉伸可以拉到的最小值是Minimum,此处是0,最大可以无限大
垂直策略是固定,表示垂直方向拉伸的时候高固定不变
当sizepolicy设置为Maximum时,部件不能拉伸只能压缩,范围是minimumsize-默认大小
preferred:可以拉伸也可以缩小
expanding:当该部件选中expanding,其他部件选中minimum,在空间有限时,该控件会优先占用空间
minimumexpanding:同样是拉伸的时候优先占用空间,缩小的最小值是minimumsize
ignored:在mininumsize之上可以任意拉伸缩小
水平伸展垂直伸展,挑战每个部件伸展的比例
部件基类-QDialog
设置中心部件
这里可以设置菜单栏
对话框类
默认情况下是非模态的
设置为模态
此时只能操作w1
当w1关闭之后,w2,w3就能被激活了
对话框类特有的方式设置模态窗口
进入本地的实验循环并且阻塞别的窗口的输入
在开发应用程序的时候如何添加对话框模板或部件模板
让窗体以模态的方式运行
点击ok,res返回结果是1,点击cancel是0
模态返回值
常用小部件-QLabel
拖四个标签
项目中加入两个图片
把这里删掉
如何让文字换行
勾选
如何设置快捷键
拖两个标签,一个按钮一个单选按钮
如果标签内文本是以中文开头,在后面的小括号里用&+快捷键字母,最终的效果是快捷键组合
alt+指定字母
如果标签内文本是以英文开头,&紧跟着的第一个字母就是快捷键
用这个来连接
常用小部件-按钮
通过文件的方式实现图标按钮
把图片文件提前放在项目里
打开图片文件
根据图片的像素调整这里的宽度和高度
查看图片的属性
调整
实现结果
通过资源的方式实现图标按钮
修改前缀
ctrl+s保存
设置按钮选中的状态
点击按钮后悔输出true
再点击一次会输出false
勾选flat,可以使按钮失去边框
分组框
拖三个单选按钮
一般是先放分组部件再其他元素
单选按钮如何相应选中与未选中
此时点击男的时候,输出true,再点击女或未知,输出false
对"男"标签修改名字
初始化该标签的点击状态
此时运行,一开始就默认是选中状态
判断是否选中
给女标签设置名字
需要修改槽函数名
修改为
把这个
修改为
常用小部件-QLineEdit
可留空的意思是可以什么也不输入,只留一个空格
使所有输入的英文字母都转化为大写
输入掩码:对用户的输入进行一些限制
最多输入5个字母,无论输入什么都会转换成大写
点击回车,输出用户的输入以及界面的显示
echoMode
normal:正常显示
noecho:不显示
password:以黑点的方式显示
passwordechoonedit用户编辑的时候正常显示,编辑完后以黑点的方式显示
勾选的话就不能编辑了
布局管理器-设计模式实现
案例:实现以下布局
给姓名,年龄,邮箱设置伙伴关系
点击这里回到编辑部件的模式
设置为水平布局
对这几行做一个垂直布局
全部选中后点击垂直布局‘’ ctrl+z是撤销上一个操作
注意要选择这一整行的布局管理器,而不是选择其中某一个部件
选中外面的红线(垂直管理器),点击这里可以打破布局
全部选中之后再点击一次打破布局就可以彻底打破
布局管理器-代码运用
用代码的方式实现上面的布局
QLable构造函数,第一种构造方式两个参数:一个是传入父指针,一个是指定窗体风格
第二个构造方式的第一个参数传入一个常量的字符串的引用
对性别,男单选按钮,女单选按钮这一行先进行水平布局,再和上面的表单进行垂直布局
把原先这行代码的参数去掉‘’
QString隐式共享
这段代码表示不支持界面扩展库
shift+f5结束断点调试
QString常用转换
删除所有断点
按f10进入调试模式,
另外几种构造的方式
类型转换
另一个方法