【Qt】界面基础与串口助手

pro文件作用:

1689858816539

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个信号:

1689907044096

槽:槽函数,可以把槽函数绑定在某一个控件的信号上

关联信号与槽:

方式一:自动关联->UI文件中

1689907281138

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

1689907457697

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

1689907576255

想要删除槽函数在上述两个位置删除即可

方式二:手动关联

适用于不是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()));

给标签添加图片

添加新文件

1689909518742

选择文件类型

1689909568312

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

1689909971899

添加图片到控件

1689910821207

Qt中的数据打印:

qDebug("Monkey\n");

除了标签不需要改变名称,其他的最好改变一下

界面布局

  1. 水平布局
  2. 垂直布局
  3. 栅格布局
    将小部分的相对位置排布完毕,点击最大的画布,再点击栅格布局,全局排列整齐

界面切换

1689921130539

1689921117460

1689921180624

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;
    }

注意:

  1. switch表达式需要是一个整数类型。
  2. 9600其实是放在currentText中,如果想用currentData,需要加一个toInt()做进一步转换
  3. 可以使用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格式

1689939755821

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇