范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

QT实现简单的上位机软件

  最近项目要求写上位机软件,需要实现界面功能和串口读写。界面方面用过MFC(早忘记了),网上查阅资料后发现QT在5.1版本后有自带的串口模块,而且用QT实现简单界面功能很容易上手(也就期末设计随便玩过几天,约等于0基础),果断下载QT试试水。
  一开始当然先看快速入门的攻略…网上有很多攻略就不细说了。
  自认为入门后开始想上位机软件的功能和架构,需要实现的功能模块不多,无非是:串口功能、数据处理、显示数据,然后根据这些模块设计界面。这里贴上后来设计好的界面雏形
  由于几乎是刚接触QT,这里基本是边设计边上网查询资料。
  比如添加了按钮控件QPushButton,QT里是怎么实现按下Button后执行相关功能的?于是了解到QT中有信号(Signal)和槽(Slot)的机制。对这个机制简单的理解是,当一个Signal出现,比如按钮的按下信号click(),就会自动跳到其连接的Slot(),Slot()就是一个自己实现的函数。这跟STM32等单片机的中断有点类似,所以个人感觉比较好理解。
  所以在上位机中,"打开串口"按钮对应的Slot()就是串口类函数 QSerialPort::open() ,再进一步设置串口的波特率等参数就行了。void MainWindow::on_SetSerialBtn_clicked() {     //获取当前值     QString StrSerial = ui->SerialBox->currentText();      //根据按钮的值判断后续操作     if( ui->SetSerialBtn->text() == "打开串口" )     {         if(timer->isActive())   timer->stop();         OpenSerial(StrSerial);     }     else if ( ui->SetSerialBtn->text() == "关闭串口")     {         CloseSerial();         if(!timer->isActive())   timer->start(5000);     } }
  要打开串口,当然也要知道目前有什么串口在使用着。这里可以使用 QSerialPortInfo::availablePorts() 获得有效串口,再将有效串口以QString形式显示到上面的QComboBox空间中。
  于是到这里…又开始查询QComboBox的相关用法,这里可以直接按F1进入QT自带的Help Mode,将所有的函数都列出来了,非常使用。这里使用到 QComboBoxdeaddItem 函数进行添加,和 currentText函数获取当前选择的值,便于打开对应的串口。QList infos = QSerialPortInfo::availablePorts();     ui->SerialBox->clear();     if(infos.isEmpty())     {         ui->SerialBox->addItem("无");     }     else     {         foreach (QSerialPortInfo info, infos)         {             ui->SerialBox->addItem(info.portName());         }     }
  这里又有问题了,因为电脑的有效串口值是会更新了,在插入新串口后应该能更新QComboBox数据。于是使用了QT自带的定时器QTimer,时间到它会发出timeout()的signal,将其连接到扫描串口的函数,就可以定时扫描串口了。timer = new QTimer(this);     connect(timer,SIGNAL(timeout()),this,SLOT(ScanSerialPort()));     timer->start(5000);
  打开串口后就要读取数据了,这里使用到QSerialPort的readAll()函数,一次读完所有的值(项目的单片机是定时发送数据的)。但如果一直让程序执行读取就会阻塞,这里发现QSerialPort有个很好的设计,串口有数据时会发送readyRead()的Signal,连接到读取的相关函数即可。个人理解Signal和Slot机制可以有效防止程序阻塞,相当不错。connect(serial, SIGNAL(readyRead()), this, SLOT(ReadSerial()));
  对数据的处理就不细说,根据自己定义的协议处理即可。处理后显示相关数据到QTableWidget空间中,这里需要用到QTableWidget的setItem(int row, int column, QTableWidgetItem *item)函数,这里要先准备好 QTableWidgetItem 类型,而且使用过程中发现一个Item只能set一次,否则会提示以下错误
  解决方法:每次setItem前都重新构造一个Item
  到这里简单的上位机框架已经实现了吧…剩下的细节和逻辑慢慢完善补充吧

弱肉强食的典型刚揭竿而起,就被三个邻国瓜分,国土缩水62从历史的角度看,国家之间的斗争关系,本质上还是以综合国力为根本的话语基础,对于民族宗教繁多的热点地区而言,更是如此。在俗称欧洲火药桶的巴尔干地区,存在着这样一个弱小国家。此国曾经建中国10座连一个山都没有的城市,最高海拔不到80米,有你家乡吗在我国这个广袤无垠的土地上,有着众多的山脉,绵延不绝的山川将土地分为不同的模块和地形,各个地区都有属于自己的山脉,吉林有长白山,河南有嵩山,广西有阳朔山。但是,有一些地方比较特殊,不能在一个地方待太久熟悉与陌生是一对孪生兄弟。一般情况下,熟悉了,就有了底气,有了底气就有了安全感。走在陌生的地方,到了陌生的环境中或涉足陌生的领域,如果遇到了急事,没有依靠,心里没底,不由自主就心慌我国的最繁忙火车站,日均600列列车经过,年运输客流量超1亿天南地北大拜年现代生活中,火车已成为最为重要的交通工具,在我国科技技术不断革命创新的同时,我国的高铁已成为世界上独具特色的风景,不仅是国人心中的交通神器,也是他国力求的科技结晶我国去有风的地方取景五福之地,开启田园之旅,抚慰您焦虑的心灵爱情和事业,失恋和迷茫,是所有生活在大城市年轻人的心病!电影去有风的地方取景之地,给了他们希冀和渴望的诗和远方。五星级酒店经理许红豆过着北漂年轻人的快节奏生活,吃饭快走路快工作快有什么是中国Q1签证?申请中国Q1签证要准备一些什么材料?中国是一个很神奇的国度,世界各地都遍布着中国人。曾经一个旅游博主出境旅游,但是走到哪里都能听到熟悉的汉语。这也足以说明华人的比例在世界人口上是很高的。排名前十的华人国家分别是新加坡中国最孤独的城市,方圆800里没有其他城市,却美得令人震撼中国自从经历了改革开放以后,人们的生活水平发生了翻天覆地的变化,各个城市省份也在友好相处,甚至一些相邻的城市会抱团取暖,各自发挥优势。其中有几个城市群,他们基本上是近邻,距离也就几用鞋抽打秦桧像?想拍走邪气,别打丢文明随着电影满江红的热映,岳飞与秦桧的那段历史,也再次成为公众关注的对象,而陷害岳飞的秦桧,也挨了更多打。河南周口淮阳区太昊伏羲陵景区工作人员说年年有人打,今年特别多。不只特别多,而且四川剑阁夜游剑门穿越千年历史,沉浸游玩感受古蜀韵味来源原创稿展现关于剑门关的诗词。王春波摄游客现场互动。王春波摄剑门长歌现场。王春波摄古剑门情景再现。王春波摄日前,由四川省文化和旅游厅等单位共同发起的安逸四川新体验一起玩转网红打卡新春走基层丨春运路上,坚守在大秦铁路线上的青年突击队2月1日,太原铁路大秦线302公里310米处的护网外,一排身穿工务作业服,头戴照明灯,右手臂佩戴着青年突击队字样袖标的青年,正在进行着作业前的点名分工,随着一声声响亮的答到声,划破国乒展开训练!本年度最大悬念诞生,陈梦5月能否成就大满贯?北京时间的1月31日,随着新年假期的结束,中国乒乓球队的球员们也集结在新的训练场地,备战接下来的比赛,在3月份的时候,国家队将会组织成员去参与新加坡大满贯的赛事,大满贯赛事积分比较
去大连旅游首先你会去哪个景点?为什么?我是大连本地人,可能回答这个问题感觉有些另类,因为几乎天天在大连,和真正的旅游者感觉是不一样的。不过,因为我是本地人,大连大多数景点都去过,反而能给出一定的建设性的建议。我个人觉得走进科学的黄延秋事件怎么解释?难道人类真的拥有飞行的本能吗?其实很多的人是相信有外星人的,但是很少会有人相信一些鬼怪之说的,因为即便是鬼怪之说是真的,但是没有确切的证明的话,我们还是不愿意相信的,因为我们都是受过高等教育的人,虽然我们敬畏自长期戴口罩,每天5小时以上,连续半年会对身体有什么影响?感谢邀请回答!如果长期戴口罩,第一如果您有戴眼镜的话,可能对您平时生活有些影响。比如呼吸的热气会往上,让您的眼镜起一层薄雾,您在开车或走路影响安全。其二因为天气越来越炎热了,特别是如何评价黄绮珊的经历?说起黄绮珊在乐坛成就可谓战绩显赫,1995年获得广州十大金曲奖最具潜质女歌手奖1999年与内地音乐人小柯对唱将爱情进行到底里的我还能做什么,此歌在北京音乐台获得了第二季十大金曲奖。如何评价SKII神仙水呢?我觉得有一句话可以概括了一分钱一分货,除了贵没毛病。传说日本四大神水入门黛珂紫苏水进阶Ipsa流金水中级奥尔滨健康水接下来就是殿堂级SK神仙水了!作为一个常年穷苦战痘星人,也是从入如何评价南开大学原校长龚克?龚克,男,汉族,中国国籍,1955年6月生,籍贯湖南湘潭,教授博士生导师,清华大学原副校长,天津大学原校长,南开大学原校长,世界工程组织联合会主席。俄罗斯宇航科学院外籍院士。龚克主是独生子女的女儿该不该养父母?是独生子女的女儿该不该养父母?无论你什么身份,就此问都挺奇葩。因为,赡养老人是儿女应尽的义务,与是否为多子女与独生子女无关。而且,做为独生女,更应该赡养父母,天经地义。难道独生女不父母60多,积蓄90万,退休金1万多,有必要再去理财么?首先你得感谢有这样的父母,给你减轻了很多负担,甚至还可以经济上帮助你。他们这种情况,不刻意理财,余生都能过得比较幸福。我是银行的理财师,一直服务很多的客户,其中有个年长的客户,我给炒股要如何快速找到热点板块?很高兴回答你的提问。炒股很容易快速找到热点板块1在财经新闻中找。热点板块往往是某种大政方针某项突发事件的驱动形成的,并不是空穴来风凭空捏造的,像历史上的雄安海南全岛自贸区免税疫苗以全面注册制利好哪些板块?A股已经在科创板和创业板中试点注册制,而全面注册制是时间问题,如果A股真的全面注册制的话,一定会利好以下三大板块。第一利好券商板块全面注册制对券商板块是最大利好,随着全面注册制后有i53470与i54590还有e31230v2性能差别大吗?哪个性价比最?感谢邀请,首先说明,这三款处理器分别是两代构架和接口类型。支持的主板不同。i53470和E31230v2为LGA1155接口的处理器,支持它们的主板包括H61P67H67Z68B7