Qt之上位机开发实战(一)

一、Qt三大金刚

1、qt下的串口编程

2、qt下的网络编程

3、qt下的GPIO

本章节先介绍一下qt下的串口编程,首先我们新建一个Widget项目
我们按照我们的需求给串口助手布局如图所示
其中接受框使用Plain Text Edit(设置只读),串口号等按钮使用Combo Box,发送框使用Line Edit,其余按钮为Push Button,选项值设置双击Combo Box即可。

Qt串口这里我们用到一个很关键的类serialport,在Pro文件下我们需要添加它QT += core gui serialport不然无法使用,接下来我们需要添加串口号使用的代码。打开widget.cpp文件在ui类中添加

QStringList serialNamePort;

serialPort = new QSerialPort(this);

foreach (const QSerialPortInfo &info ,QSerialPortInfo::availablePorts()) {
    serialNamePort<<info.portName();
}
    ui->serialCB->addItems(serialNamePort);

注意添加头文件#include <QSerialPortInfo>,到这里我们的串口助手已经可以识别串口号了。

逻辑功能实现
首先在widget.h文件中添加头文件#include <QSerialPort>,然后在Public中定义QSerialPort *serialPort;紧接着打开widget.cpp文件定义serialport的对象serialPort = new QSerialPort(this);
打开,关闭等按钮和波特率,数据位,停止位,校验位等按钮我们选用自动关联(也可以connect手动关联)槽函数:

void Widget::on_OPEN_clicked()
{
    QSerialPort::BaudRate baudRate;
    QSerialPort::DataBits dateBits;
    QSerialPort::StopBits stopBits;
    QSerialPort::Parity parity;

    if(ui->BTrateBOX->currentText() == "4800")
    {
        baudRate = QSerialPort::Baud4800;
    }
    else if(ui->BTrateBOX->currentText() == "9600")
    {
        baudRate = QSerialPort::Baud9600;
    }
    else if(ui->BTrateBOX->currentText() == "115200")
    {
        baudRate = QSerialPort::Baud115200;
    }
    if(ui->DATABOX->currentText() == "5")
    {
        dateBits = QSerialPort::Data5;
    }
    else if(ui->DATABOX->currentText() == "6")
    {
        dateBits = QSerialPort::Data6;
    }
    else if(ui->DATABOX->currentText() == "7")
    {
        dateBits = QSerialPort::Data7;
    }
    else if(ui->DATABOX->currentText() =="8")
    {
        dateBits = QSerialPort::Data8;
    }
    if(ui->STOPBOX->currentText() == "1")
    {
        stopBits = QSerialPort::OneStop;
    }
    else if(ui->STOPBOX->currentText() == "1.5")
    {
        stopBits = QSerialPort::OneAndHalfStop;
    }
    else if(ui->STOPBOX->currentText() == "2")
    {
        stopBits = QSerialPort::TwoStop;
    }
    if (ui->EVALBOX->currentText() == "None")
    {
        parity = QSerialPort::NoParity;
    }
    serialPort->setPortName(ui->serialCB->currentText());
    serialPort->setBaudRate(baudRate);
    serialPort->setDataBits(dateBits);
    serialPort->setParity(parity);
    serialPort->setStopBits(stopBits);

    if(serialPort->open(QIODevice::ReadWrite)==true)
    {
        QMessageBox::information(this,"提示","成功");
    }else{
        QMessageBox::critical(this,"提示","失败");
    }
}


void Widget::on_CloseBT_clicked()
{
    serialPort->close();
}


void Widget::on_SendBT_clicked()
{
    serialPort->write(ui->SendEdit->text().toLocal8Bit().data());
}


void Widget::on_Cleanall_clicked()
{
    ui->ReceiveEditEdit->clear();
}

这里我们用到了警告窗口所以需要添加#include <QMessageBox>头文件

串口收发
串口收发时使用信号槽实现的需要手动关联,首先在widget.h中的槽下声明void serilaPortReadyread_slot();并且在widget下添加connect(serialPort,SIGNAL(),this,SLOT(serilaPortReadyread_slot()));

打包可执行文件
我们下载一个ico格式的图片,不可直接更改图片后缀。然后将图复制到工程文件下,在Pro文件下添加RC_ICONS = favicon.ico你的图片。然后我们将Qt切换到Release模式运行,这样我们就会得到一个.exe可执行文件,然后我们在桌面上新建文件并且将可执行文件复制到刚刚创建的文件下。然后我们打开Qt终端。
在这里插入图片描述
输入cd /d +你的文件地址切换到该文件下,输入windeployqt + 可执行文件完整文件名(文件名+.exe)就可以完成打包了。

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip 利用QT实现上位机数据采集.zip
Qt 是一款跨平台的应用程序开发框架,能够用于开发各种类型的软件。上位机是指控制系统中的一个部分,负责与低级控制设备通信,实现控制和监控功能。CAN(Controller Area Network)是一种广泛应用于汽车、工业控制等领域的通信协议。现在,我们来谈一谈 Qt 上位机与 CAN 的结合应用。 Qt 上位机可以通过使用相应的 CAN 接口库来实现与 CAN 总线的通信。Qt 提供了丰富的网络和串口通信功能,发送和接收 CAN 消息可以通过网络通信接口或串口通信接口来完成。通过 Qt 团队或第三方开发的CAN库,我们可以轻松地在 Qt 上位机中实现与 CAN 总线的通信。 使用 Qt 上位机进行 CAN 通信的好处之一是,Qt 的跨平台特性使得我们可以在各种操作系统上运行我们的上位机应用程序。不管是在 Windows、Linux 还是 macOS 等系统上,Qt 都能提供一致性的开发体验和运行结果。 Qt 提供了易于使用且强大的界面设计工具,可以帮助我们设计出直观而美观的用户界面,用于显示和控制 CAN 总线上的数据。通过 Qt 的信号槽机制,我们可以方便地实现对 CAN 数据的处理和分发,使得上位机能够实时地获取和更新来自 CAN 总线的数据。 总之,Qt 上位机的 CAN 应用可以支持用户与 CAN 总线之间的数据交互和通信,提供了易用、跨平台和强大的界面设计能力。这使得我们能够快速开发出功能丰富且可靠的上位机应用,用于实现各种控制和监控任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值