pro文件作用:

widgt相当于主界面,有什么变动与扩展基于其进行,main里面的不用动
常用控件作用与用途·:
line edit:只允许单行文字,放账号、密码,发送框
push button:按钮,用于触发事件
plain text edit :接受框
combo box: 属性选择
group box: 广告框
常用控件编辑属性:
----Qobject
----objectname: 不可以修改
----Qwidgt
----font:不选中任何框时改变界面中
----minimumSize:设置图片最小尺寸
----maximumSize:设置图片最大尺寸(上述二者如果相同图片就会固定,在布局的时候好用)
所有字体,选中时只改变对应的字体
----Qframe
----frameShape:边框形状
----Qlabel:
----text:文字内容
----alignment:对齐方式
----QLineEdit:
----echoMode:信息显示形式,passward表示使用密码形式
----QPlainTextEdit:
----readonly:只读
信号与槽
信号:操作空间发出的特定的信号
对于按钮有4个信号:

槽:槽函数,可以把槽函数绑定在某一个控件的信号上
关联信号与槽:
方式一:自动关联->UI文件中

widgt.h文件中自动生成槽函数声明。注意:必须放在private slots(居多)或public slots下

widgt.cpp文件中自动出现槽函数的定义

想要删除槽函数在上述两个位置删除即可
方式二:手动关联
适用于不是button点击这样直接的信号
除了手动实现自动关联函数外,还要使用connect函数->在widgt构造函数的setupUi函数之后
// 因为控件都是在ui界面中,调用控件一律要调用其父指针ui
// 控件槽函数只要能对应上即可,不用完全与自动关联生成的槽函数形式一致
通用公式:
connect(ui->A, SIGNAL(B), C, SLOT(D));
当控件A发出B信号时,就会触发对象C的槽函数D
例如:
connect(ui->logoBt, SIGNAL(clicked()), this, SLOT(logoBt_clicked_slots()));
给标签添加图片
添加新文件

选择文件类型

保存图片到资源,先添加前缀,再保存,再加载图片,最后保存

添加图片到控件

Qt中的数据打印:
qDebug("Monkey\n");
除了标签不需要改变名称,其他的最好改变一下
界面布局
- 水平布局
- 垂直布局
- 栅格布局
将小部分的相对位置排布完毕,点击最大的画布,再点击栅格布局,全局排列整齐
界面切换



Qt常用代码:
初始化并显示界面
ct -> setGeometry(this -> geometry()); //get the infomation like shape and location of new ui
ct -> show(); //show the new ui picture
关闭界面
this ->close();
定于一个变量接住编辑框的文本
QString userName = ui ->accountEdit -> text();
自动搜索串口号并显示 -> 在widgt构造函数的setupUi函数之后
QStringList serialNamePort;
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) // 串口信息类,自动搜索当前可用串口
{
serialNamePort << info.portName(); //把返回的可用串口赋值给自定义的串口名
}
ui->serialCB->addItems(serialNamePort); //在ui界面中显示可用的串口号
串口需要包含的头文件
#include `<QSerialPortInfo>`
#include `<QSerialPort>`
对参数的设置选用switch语句
int baudRateName = ui -> baundrateCB -> currentData().toInt();
switch(baudRateName)
{
case 9600:
baudRate = QSerialPort::Baud9600;
break;
case 115200:
baudRate = QSerialPort::Baud115200;
break;
default:
break;
}
注意:
- switch表达式需要是一个整数类型。
- 9600其实是放在currentText中,如果想用currentData,需要加一个toInt()做进一步转换
- 可以使用currentIndex根据数据所在索引进行数据选择,在ui界面中的下拉框顺序即为索引值,从0开始
int baudRateName = ui -> baundrateCB -> currentIndex();
switch(baudRateName)
{
case 0:
baudRate = QSerialPort::Baud9600;
break;
case 1:
baudRate = QSerialPort::Baud115200;
break;
default:
break;
}
也可以用currentText来写,这时就不满足switch case的整型要求,需要更换为if else
if (ui -> baundrateCB -> currentIndex() == "9600")
baudRate = QSerialPort::Baud9600;
else if(ui -> baundrateCB -> currentIndex() == "115200")
baudRate = QSerialPort::Baud115200;
QT的三驾马车
qt下的串口编程
qt下的网络编程
qt下的操作GPIO
仿写助手
先设计UI界面,再写函数
打包与部署
切换工程到release模式
找到文件构建文件夹
软件图标格式应该是ico格式
