时间:2023/2/25来源:本站原创作者:佚名

第一课我们先学会使用数码管小挂件,制作一个显示电脑时间的工具。

接下来一步一步讲怎么做,

第一步先新建一个小挂件程序工程

接下来系统会帮助创建好一个工程模板,接下来我们在工程目录中的Forms找到ui文件,双击进入程序设计功能。

我们在左边的显示挂件区找到LCDNumber,拖动到程序的空白主窗口内,调整大小和布局样式

接下来进入一个关键的设置,就是设置数码管的位数,比如你买数码管都是要考虑显示多少位的数字或字符的。

比如你要显示12:05:35

数一下是多少位?一共8位,所以我这里就设置为8.这是设置为默认值的,程序里也可以修改属性里的所有参数的。

不过为了简单,我们都在这里设置,那程序里就简单了,方便入门。

接下来实现时间显示功能了,我们可以直接调用系统的时间显示,那么多久刷新一次呢?ms,或者ms。

这里可以用定时器做,因此还要引入

#includeQTimer#includeQTime一个是定时器,一个是获取时间

所以接下来要实现一个显示时间的函数

voidMainWindow::showTime(){QTimetime=QTime::currentTime();QStringtxtTime=time.toString(hh:mm:ss);qDebug()txtTime;ui-lcdNumber-display(txtTime);}

说明:先获取当前时间,然后将时间信息转化为字符串,那个时间转字符串是有格式说明的,hh:mm:ss,这三个分别代表小时分钟秒,中间是分隔符,可以选中改函数后按F1查看详细的说明。

然后就是输出调试信息,用来确认后面的数码管显示是否对,然后就是显示到数码管,这个函数只接受字符串。

另外如果你忘了在小挂件属性设置显示的位数,默认是显示5位,你会看到mm:ss的信息,而看不到hh

如果这里设置数码管位数可以用

ui-lcdNumber-setDigitCount(8);

注意所有的对象设置属性都是用set开头+属性名字;

接下来实现定时器功能,并将定时器跟显示函数关联上

在主要初始化函数内增加以下内容

QTimer*timer=newQTimer(this);connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));timer-start();

创建定时器,链接定时器超时与SLOT,SLOT这个后面讲是什么,先照着做。或者自己查看HELP。

启动定时器,设置为ms超时信号

在头文件增加

publicslots:voidshowTime();

这样就OK,可以编译了,记住,推荐选择mingw的编译器。

效果就出来了。

该例子的完整工程分享如下

原标题:QT上位机开发入门教程:点亮虚拟数码管

原作者:gaoyang

本文为21ic有奖征文作品,详情请见21ic论坛活动专区:第一届万元红包——蓝V达人有奖征文活动,如果您也有兴趣参与征文,欢迎进入论坛参与活动~


转载请注明原文网址:http://www.13801256026.com/pgsp/pgsp/3513.html
------分隔线----------------------------