Qt预测控制界面开发(一)

本次开发项目,是控制学科的水项目,需要添加一个界面方便对控制器各参数的调试。达成的目的都很简单,而且也没有什么程序性能等方面的要求,实现起来应该是很简单的,但鉴于是第一次使用这些工具,个人认为有必要记录一下开发过程。

关于预测控制就不谈了,只谈一下这两天看Qt的收获。

开发环境 :

硬件:树莓派3

系统:Linux定制

version :based on Qt 5.3.2;Qt creator 3.2.1;gcc 4.9.2

目标:

1.实时显示几个控制相关的参数量。

2.通过界面完成对预测控制的两个矩阵,一个时间周期参数进行更改(通过txt文件形式)

首先对目标进行拆解,实时显示参数意味着:

1.完成对数字在界面上的显示  2.数据的显示必须可以变化  3.向数据的显示处正确传递数据

其次通过txt文件对参数进行更改,在已经完成1目标的基础上,还需要:

1.正确读取TXT文件2.某个时间触发下读取文件


其实如果对Qt核心机制,信号和槽稍微了解的话,完成上面两个目标简直so easy

参数的显示,借用QLabel::setNum()。而参数的变化(刷新)借助Qt的槽和信号机制,结合基于操作系统的计时器函数,QTimer类,QTimer对象具有一个信号函数,timeout()每当函数及时完成一次,自动发射一次信号。通过QTimer::start()函数调整发射周期。为了能够传递数据,我们还需要一个携带数据的信号,即SIGNAL(isSIG(int))方法,及对应的SLOT(QLabel::setNum(int) )槽。分别connect两个signal,再connect  isSIG和 setNum就可以完成数据的刷新。


接下来是读取txt文件。

Qt中有方便的类可以利用,用QFile和QTextStream可以很容易达到读取的目的。

QFile(path_string)可以构造出一个QFile对象,通过该QFile对象可以进一步构造出一个QTextStream(Object_QFile),通过QTextStream::readline()函数进行读取,读取返回值为QString。想要转化为int值的话,需要QString::toInt()函数。解决起来,也是很方便的。


目前这些已经实现,接下来可以正式搭建界面了。


2017-3-5 23:05:01


你可能感兴趣的:(C++,Qt)