PS:Qt4和Qt5不能兼容,前者简易但是建议学习后者
下载地址
mac下为dmg后缀安装包,win下为exe后缀安装包,ubuntu下为run后缀安装包。ubuntu下的run文件,需要先chmod 777 XXX
,再使用./ XXX
即可作为可执行文件运行
安装时候要选定全部安装,避免出现依赖问题。另外安装时要求登录,Qt密码格式为“@+字母组合+数字组合”
Debug: 保存编译信息,便于调试,不作任何优化
release: 被优化以实现最小的代码和速度,生成执行文件的发布版本,没有调试信息
profile:在执行软件期间分析CPU利用率和存储器占用率。它还可用于发现和分析异常和错误
PS:手动编译方法
Qobject是绝大部分类的父类,任何对象都有一个唯一的objectName的属性
Qwidget是所有GUI的基类,具有外观
坐标原点是窗口左上角,控件坐标是控件的左上角相对窗口左上角的位置
为什么在“Lable+Line edit”的组合Layout中,对Layout进行拉伸,Lable长宽不会变而Line edit会变?
见Qwidget里的sizePolicy,即尺寸策略
常用的有三个:
另外,在布局之后可以在Layout的layoutStrench中进行布局内部控件占据比例的设定
也可以添加spacer(功能正如其弹簧形状所示)用于留出空白部分,以控制相对距离
PS:centralwidget上有一个“打破布局的禁止标”,是因为没有进行全局布局,可以点击centralwidget,再点击上方工具栏的布局,可以消除这个小标
在minimumSize和maximumSize中修改可以使得对于窗口的拉伸限制在一定范围。而将最大最小值设置为一致,则窗口为固定大小,不能进行缩放。
PS:mac下面有bug,最大最小值一致时,不能进行边缘拉伸,但是可以点按钮最大化,且最大化后不能最小化
某个元素接收到什么信号 -> 某个元素执行什么动作
基础Qt的学习目标:
最基本实现方法:
connect(谁,发出什么信号,谁,执行什么操作)
connect(this->ui->btn1,SIGNAL(clicked(bool)),this,SLOT(login()));
另外在某些需求时可以使用disconnect函数
,用法同上
使用connect函数实现,需要修改三个地方:
private slots:
void login();
ui->setupUi(this);
下方添加connect函数ps: 另外还有两种实现方法,用的极少,暂不介绍
共性举例:
bool值属性:
设置:set+属性名
获取:(属性名 / is+属性名) 其一
int / icon值(等其他)属性:
设置:set+属性名
获取:属性名
make指令根据makefile文件进行批量编译
cmake指令根据cmakelist文件自动生成makefile文件
原文:https://www.cnblogs.com/tzbubble/p/12886512.html