当前位置: 首页 > news >正文

网站加首页北京做网站商标的公司

网站加首页,北京做网站商标的公司,潍坊建网站,网站界面设计的发展前言 本文主要涉及上位机对接收的串口数据处理#xff0c;LCD Number控件的使用。之前的一篇写一个简单的LED控制主要是串口发出数据#xff0c;这里再看一下怎么接收数据处理数据#xff0c;这样基本就对串口上位机有简单的认识了。 LCD Number显示时间 这一小节通过用一…前言 本文主要涉及上位机对接收的串口数据处理LCD Number控件的使用。之前的一篇写一个简单的LED控制主要是串口发出数据这里再看一下怎么接收数据处理数据这样基本就对串口上位机有简单的认识了。 LCD Number显示时间 这一小节通过用一个LCD Number实时显示时间的例程认识一下LCD Number控件。 新建一个widget示例工程前面的文章都有相关内容请移步查阅这里不赘述。 双击widget.ui打开 Qt 设计器界面拉一个LCD Number到合适位置 拉大一点 这里说一下QT开发的大概模式和C# 开发很像这里是.ui文件是UI设计同时相关源文件配合如果UI设计不能直接设置的就必须通过源码实现当然UI设计器主要还是设置控件的位置大小颜色和一些基本参数之类的。ui文件是可有可无的即使没有ui文件完全通过代码添加控件设定控件参数位置等也是完全可行的。 其余的就按下面的代码改一下就行了。 整体源码 widget.cpp文件 #include widget.h #include ui_widget.hWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);/* 设置显示的位数 8 位 */ui-lcdNumber-setDigitCount(8);/* 设置样式 */ui-lcdNumber-setSegmentStyle(QLCDNumber::Flat);/* 设置 lcd 显示为当前系统时间 */QTime time QTime::currentTime();/* 设置显示的样式 */ui-lcdNumber-display(time.toString(hh:mm:ss));timer new QTimer(this);/* 设置定时器 1000 毫秒发送一个 timeout()信号 */timer-start(1000);/* 信号槽连接 */connect(timer, SIGNAL(timeout()), this, SLOT(timerTimeOut()));}Widget::~Widget() {delete ui; }void Widget::timerTimeOut() {/* 当定时器计时 1000 毫秒后刷新 lcd 显示当前系统时间 */QTime time QTime::currentTime();/* 设置显示的样式 */ui-lcdNumber-display(time.toString(hh:mm:ss)); }widget.h文件 #ifndef WIDGET_H #define WIDGET_H#include QWidget #include QLCDNumber #include QTimer #include QTimeQT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private:Ui::Widget *ui;/* 声明 QTimer 对象 */QTimer *timer;private slots:/* 槽函数 */void timerTimeOut(); }; #endif // WIDGET_H其余文件保持默认。 效果 串口数据处理LCD Number显示电压电流 串口协议是JSON格式类似{“Cur”:118,“Vol”:7587}电流单位mA电压单位mV 双击.ui文件打开UI设计器通过拖动的方式添加控件如下图所示放置红色框是Label蓝色框是Combo Box黄色框是两个Push Button棕色框是LCD Number其中的文字都可在放置控件后双击改之 串口部分与这篇文章相似QT C入门学习(2) QT Creator写一个简单的上位机控制LED可作参考 Label可以通过font属性调整字体和大小 LCD Number可以通过digitCount属性设定最大显示位数这里保持默认5位即可 .pro文件中添加串口模块 程序源码 widget.h文件 #ifndef WIDGET_H #define WIDGET_H#include QWidget #include QLCDNumber #include QSerialPort #include QSerialPortInfoQT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private:Ui::Widget *ui;QSerialPort *serialPort;//定义串口指针private slots:/*以下为widget.ui文件中点击“转到槽”自动生成的函数*/void on_openBt_clicked();void on_btnSerialCheck_clicked();void DateRead();}; #endif // WIDGET_H widget.cpp文件 #include widget.h #include ui_widget.h #include QMessageBox #include QDebug //解析json格式类 #include QJsonDocument #include QJsonObject #include QJsonArray #include QJsonValueWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);QStringList serialNamePort;serialPort new QSerialPort(this);ui-serailCb-clear();//通过QSerialPortInfo查找可用串口foreach(const QSerialPortInfo info, QSerialPortInfo::availablePorts()){ui-serailCb-addItem(info.portName());}connect(serialPort,SIGNAL(readyRead()),this,SLOT(DateRead()));/*手动连接槽函数*/}/*打开串口*/ void Widget::on_openBt_clicked() {// 初始化串口属性设置 端口号、波特率、数据位、停止位、奇偶校验位数serialPort-setPortName(ui-serailCb-currentText());serialPort-setBaudRate(ui-baundrateCb-currentText().toInt());serialPort-setDataBits(QSerialPort::Data8);serialPort-setStopBits(QSerialPort::OneStop);serialPort-setParity(QSerialPort::NoParity);// 根据初始化好的串口属性打开串口// 如果打开成功反转打开按钮显示和功能。打开失败无变化并且弹出错误对话框。if(ui-openBt-text() 打开串口){if(serialPort-open(QIODevice::ReadWrite) true){ui-openBt-setText(关闭串口);// 让端口号下拉框不可选避免误操作选择功能不可用控件背景为灰色ui-serailCb-setEnabled(false);}else{QMessageBox::critical(this, 错误提示, 串口打开失败\r\n该串口可能被占用\r\n请选择正确的串口);}}else{serialPort-close();ui-openBt-setText(打开串口);// 端口号下拉框恢复可选避免误操作ui-serailCb-setEnabled(true);}}//检测通讯端口槽函数 void Widget::on_btnSerialCheck_clicked() {ui-serailCb-clear();//通过QSerialPortInfo查找可用串口foreach(const QSerialPortInfo info, QSerialPortInfo::availablePorts()){ui-serailCb-addItem(info.portName());} }void Widget::DateRead() //接收数据 {QByteArray recvDataserialPort-readAll();//解析 JSON格式QString receive QString::fromLocal8Bit(recvData.constData());QJsonDocument docQJsonDocument::fromJson(receive.toUtf8());QJsonObject objdoc.object();QJsonValue Current obj.value(Cur);QJsonValue Voltage obj.value(Vol);ui-current_Num-display(Current.toInt());ui-voltage_Num-display(Voltage.toInt()); }Widget::~Widget() {delete ui; }验证 方法通过两个USB转串口模块TX和RX对接其中一个端口通过串口助手发送JSON字符注意波特率需相同 LCD Number还可以更改颜色样式 通过styleSheet属性即可更改 color是字体颜色background-color是背景色
http://www.yingshimen.cn/news/83980/

相关文章:

  • 增城高端定制网站建设申请个人手机网站空间
  • 郑州建设网站的公司八大装修风格有哪些
  • 专做logo网站叫什么哪个网站域名解析
  • seo整站优化方法怎样制作一个网页
  • 源码网站网站建设招聘启事
  • 石碣镇网站建设外贸网站翻墙做广告
  • 城市规划建设网站cnzz数据统计
  • 网站建设大致分哪几块猫咪社区官网在线最新
  • 做网站的小图标历史价格查询
  • wordpress下载网站模板怎么用移动互联网开发考研方向
  • 企业管理咨询收费标准泰安网站建设优化
  • 罗湖网站建设报价怎么做兼职网站
  • 冷库网站建设营销网站建设网站制作公司
  • 网站开发安装win10家庭版网站建设企业 熊掌号
  • 服装设计网站素材wordpress flv插件
  • 常州制作企业网站专业建站哪家好
  • 做单不能用什么网站vs2008 新建网站
  • 网站建设目录结构网站开发外包价格
  • 网站设计的特点网站建设数据录入
  • 为什么网站收录下降中国美食网页设计
  • 《网站平台建设》课程实训广告设计自学网教程
  • 仲恺建设局网站wordpress中文安装
  • 怎样可以做网站wordpress安装遇到FTP
  • 网站版式设计网站设计沟通
  • 免费发布信息网站大全有哪些玩具网站建设服务公司
  • 青岛开办公司要做网站吗海南网纹瓜
  • 网站建设费用计入无形资产h5网站开发中心
  • 企业服务有哪些广州网站优化公司如何
  • 美工网站设计是什么优秀ppt作品范例
  • wordpress只备份数据做网站seo的公司