《工业控制计算机》2021年第34卷第1期
随着计算机技术和电路集成化的快速发展,汽车电子、军用航空、医疗器械、消费电子等领域对嵌入式技术应用越来越广泛。因此,采用嵌入式技术,通过人机交互界面的建立进行电子相册设计就显得十分必要。Qt 是跨平台的应用开发框架,支持各大主流操作系统。它既可以开发GUI 程序,也可用于开发非GUI 程序[1]。文中首先简要描述了QT 中的事件处理机制,其次是电子相册的功能实现。基于QT Creator 新建电子相册工程,使用QT Designer 工具进行电子相册的界面设计[2-3]。采用事件处理机制,通过按钮转到槽定义点击按钮后会触发调用的函数,在函数中实现页面切换以及绘图事件的更新[4]。最后进行实际测试,结果能够实现点击按钮实现图片切换的功能。1事件处理机制 1.1QT 中的事件处理机制
在QT 中,是以事件驱动UI 工具集,包括信号和槽都依赖于QT 的事件处理机制。通常事件是由窗口系统或者QT 自身产生的,用以响应所发生的各类事情,比如用户按下并释放了键盘或者鼠标、窗口因缩放而需要重绘、定时器到期而应该有所动作。如图1所示,QT 中对鼠标按键按下触发事件,发射信号,可以被槽函数捕获,用户需要实现的内容可以在槽函数中完成。
图1QT 中的事件处理流程
在QT 中,事件被封装成对象,所有的事件对象类型都继承自抽象类QEvent 。当事件发生时,首先被调用的是QObject 类中的虚函数event (),其参数(QEvent )标识了具体的事件类型。在QT 桌面应用(Qt Widegets Application )开发中,QWidget 类覆盖了其基类中的event穴雪虚函数,并根据具体事件调用具体事件处理函数。QWidget 类中常用的一些事件函数包括:鼠标按下事件、鼠标抬起事件、鼠标移动事件、绘图事件等。
所有的事件处理函数都是虚函数,可以被QWideget 的子类覆盖,以针对不同窗口控件类型的事件处理,控件的使用者所关心的往往是定义什么样的槽处理什么样的信号,而控件的实现者则更加关心覆盖哪些函数。
希望在窗口中自定义的处理事件,可以继承QWidget 或者其子类,如QDialog 、QMainWindow ,在自定义的窗口子类中重
写事件处理函数,当相应时间被触发时,会利用多态的语法机制,所执行到的时间处理函数将是子类中重写的版本,从而实现想要的事件处理效果。1.2绘图事件
通过绘图事件,可以实现自定义的图像绘制,当有下列情况之一发生时,将触发绘图事件,即QWidget 类的paintEvet穴雪虚函数会被调用。
①窗口被创建以后第一次显示出来;②窗口由隐藏状态转变为可见状态;③窗口由最小化状态转变为正常或最大化状态;④窗口因尺寸大小的变化需要呈现更多的内容;⑤QWidget 类的update穴雪/repaint ()成员函数被调用。
如果希望在自己的窗口中显示某个图像,在QWideget 的窗口子类中可以重写绘图事件函数paintEvent ,在其中可用QPainter (QT 二维图形引擎)实现指定的图像绘制、渲染等操作。2电子相册功能实现2.1新建工程
基于QT 事件处理机制,自定义绘图时间,通过鼠标按键的点击实现图片的上一页或者下一页的切换。首先,使用QT Creator 进入QT 集成开发环境界面,创建新工程,选择Dialog 作为父窗口,指明工程名及所在路径。
图2所示为新建电子相册项目,项目名称为ShowImage.pro 。该项目中包含showimagedialog.h 头文件、main.cpp 、showimagedialog.cpp 源文件、showimagedialog.ui 源文件。
泵
图2新建电子相册项目
2.2图片资源的导入
如图3所示,需要向新建项目中导入图片资源文件,这里一共导入了9张图片进行测试。
环保柴火灶
2.3定义信号和槽的连接,重写绘图事件
如图3所示,使用QT Designer 工具设计的电子相册界
基于QT 的智能电子相册设计与实现
刘璐璐
王
典(西安石油大学,陕西西安710065)制作奖章
Design and Implementation of Intelligent Electronic Album Based on QT
摘要:智能相册的开发基于Linux 操作系统,在系统上安装QT 相关开发工具后,使用QT Creator 工
具以及QT 内部的事件处理机制进行智能电子相册开发。实现通过鼠标点击按钮实现查阅电子相册的功能。
关键词:QT ,事件处理机制,电子相册
Abstract 押The development of this smart photo album is based on the Linux operating system.After installing QT related development tools on the system熏use the QT Creator tool and QT's internal event handling mechanism to develop smart electronic photo albums.Realize the function of viewing electronic albums by clicking the button with the mouse.
Keywords 押QT熏event handling mechanism熏electronic photo
album
71
基于QT的智能电子相册设计与实现
(上接第70页)
3结束语
本文主要介绍了基于航空发动机的数据处理与可视化平台的的设计与实现,通过前后端分离部署简化了开发,同时使用token解决了session共享问题。对索引缓存和表独立设计存储解决了访问热点问题,对小文件和大文件分开存储提高了系统对大文件的写入效率。平台通过内置算法以及用户自定义算法对数据进行处理,处理完后的结果会保存在服务器上,然后在前端页面展示。后续可以采用分布式计算框架让数据处理更加快速,同时对数据的展示进行改进。
参考文献
70sec
[1]葛微,罗圣美,周文辉,等.HiBase:一种基于分层式索引的高效
HBase查询技术与系统[J].计算机学报,2016,39(1):140-153 [2]王文贤,陈兴蜀,王海舟,等.一种基于Solr的HBase海量数据二级
索引方案[J].信息网络安全,2017(8):39-44[3]张榆,马友忠,孟小峰.一种基于HBase的高效空间关键字查询策略[J].小型微型计算机系统,2012,33(10):2141-2146 [4]杜晓东.大数据环境下基于Hbase的分布式查询优化研究[J].计算
机光盘软件与应用,2014,17(8):22-24
[5]季一木,张宁,尧海昌,等.HOS:一种基于HBase的分布式存储系统设
计与实现[J].南京邮电大学学报(自然科学版),2019,39(5):63-71 [6]张阳.大数据可视化统计分析通用平台的设计与实现[D].北京:北京
交通大学,2019
[7]刘玉涛.可视化通用数据分析实验平台的设计与实现[D].北京:北京
邮电大学,2017
[8]宋美娜,崔丹阳,鄂海红,等.一种通用的数据可视化模型设计与实现[J].计算机应用与软件,2017,34(9):38-42,96
[9]陈先灏,雒江涛.面向电商数据的可视化查询系统[J].计算机系统应
用,2016,25(4):123-127
漏水探测器[10]陈悦.基于大数据的数据可视化技术研究[J].产业与科技论坛,
2020,19(10):38-39
[收稿日期:2020.10.8]
面,主要包括QPushButton两个按钮控件、显示图片的QFrame 控件。通过水平布局调整,最终制作效果如图4所示。
图4电子相册界面
点击上一张或者下一张触发事件,执行上一张处理函数on_m_btnPrev_clicked()或者执行下一张处理函数on_m_btn-Next_clicked(),通过在处理函数中实现图片的切换,在处理函数的最后调用update()绘图事件更新函数实现图片的更新。
3实际测试效果
如图5、图6所示,本次完成电子相册的开发,实现了通过点击上一张或下一张按钮实现相册的页面切换。
图5切换上一张图片
图6切换下一张图片
参考文献
[1]袁媛,王延红,江凌,等.基于Qt及Open CASCADE的建模技术研
究[J].现代电子技术,2013,36(10):74-77
[2]程博.基于嵌入式Qt的数字机顶盒图形界面设计与实现[J].计算机
应用,2009,16(11):45-46
浮油回收机
[3]衰野,王宏远.一种嵌入式系统中GUI的设计[J].计算机与数字工
程,2006,34(1):103-106
[4]谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006
[收稿日期:2020.10.15]
图3导入的图片
文件
72