基于QtCreator的嵌入式GUI程序设计和移植

2021-08-06 11:13
科教导刊·电子版 2021年17期
关键词:用户名对话框控件

戴 军

(江苏开放大学江苏城市职业学院 江苏·南京 210000)

我们常用QtCreator来设计嵌入式GUI并可以仿真调试,如果调试通过就可以将GUI移植到目标机中使用。我们提出假设即通过Ubuntu中QtCreator设计GUI并通过RHEL编译移植到S5pv210目标机中运行,可通过以下实验验证其可行性。

1 基于QtCreator的嵌入式GUI程序设计

运行QtCreator-新建文件或工程,选择Qt控件项目-QtGui应用,设置项目名称为mainWidget,设置类名为Widget,基类为Qwidget,头文件为widget.h,源文件为widget.cpp,界面文件为widget.ui,接着新建Qt设计师界面类,选择界面模板为Dialog without Buttons,设置类名为loginDlg,头文件为logindlg.h,源文件为logindlg.cpp,界面文件为logindlg.ui。

在界面文件logindlg.ui中放置“用户名”和“登录密码”两个Text Edit控件,在“用户名”和“登录密码”后面分别放置两个LineEdit控件,并将其objectName分别命名为usrLineEdit和pwdLineEdit,放置“登录”和“退出”两个Push Button控件,并将其objectName分别命名为loginBtn和exitBtn。单击菜单“编辑”-“编辑信号/槽”或者按下快捷键F4,鼠标左键按住并拖动logindlg.ui界面中的退出按钮到空白处并释放,在配置连接设置对话框中将loginDlg(QDialog)选择为close(),然后单击确定退出设置。单击菜单“编辑”-“编辑控件”或者按下快捷键F3回到编辑控件状态,鼠标右键点击ogindlg.ui界面中的登录按钮在弹出的菜单中选择“转到槽”,在转到槽设置对话框的选择信号中选择clicked()并点击确定进入click事件的槽函数,在其中写入代码accept();为使密码显示为黑点以及移除字符串开头和结尾的空白字符,判断用户名和密码输入是否正确,同时保证输入错误的情况下,重新进入登录对话框并清空用户名和密码且光标自动跳转到用户名输入框,可以将logindlg.cpp代码修改如下:

如图1所示,执行以上程序,就可以实现输入用户名和密码正确的情况下,点击登录按钮就可以进入主窗口并显示qrs.png的图片,如果输入错误,则弹出出错提示对话框。点击退出按钮退出程序。

图1:mainWidget调试运行界面

2 基于RHEL嵌入式GUI程序的编译和移植

如图2所示,将Ubuntu中的mainWidget工程文件夹拷贝至RHEL根目录下,将RHEL中的qmake程序拷贝至mainWidget工程文件目录中,运行/mainWidget/qmake指令生成makefile文件,运行make编译生成可执行目标文件mainWidget。

图2:mainWidget编译

编写设置环境变量以及运行 mainWidget的脚本文件run.sh,脚本文件run.sh程序如下:

将可执行目标文件mainWidget、文件目录img和run.sh打包压缩下载到S5pv210实验箱中并解压运行run.sh,效果如图3所示。

图3:mainWidget移植和运行效果

3 小结

通过基于 QtCreator的嵌入式 GUI程序设计以及基于RHEL嵌入式 GUI程序编译和移植,可以看到此方案对于S5pv210的应用是完全可行的,可为类似的GUI设计及移植提供必要的启示。之所以使用QtCreator来进行嵌入式GUI设计,是考虑到QtCreator集成了特定于Qt的功能,对Qt类结构可一目了然,集成了Qt Designer可视化布局和格式构建器,只需要单击一下就可以生成和运行Qt项目。

猜你喜欢
用户名对话框控件
《护士进修杂志》投稿程序
《护士进修杂志》投稿程序
正常恢复虚拟机
《护士进修杂志》投稿程序
ASP.NET服务器端验证控件的使用
Spreadsheet控件在Delphi数据库系统中的编程与应用