emWin -- 可视化界面设计GUI Builder

2024-02-05 07:48

本文主要是介绍emWin -- 可视化界面设计GUI Builder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

emWin -- 可视化界面设计GUI Builder

分类: emWin

如果你以前做过点阵式的LCD屏,或是TFT屏幕的菜单,以及显示效果设计,如果你曾经为了改善图标的摆放位置,以及优化整体界面的搭配显示效果,而不停的修改代码,烧录,运行,再修改的话,那么你还是用上emWin吧。

如果你用过MicroSoft的Visual studio,那么这里就让你体会一下,如何用类似的思路,可见即所得的思路,来设计整个仪表的界面。

首先要请出emWin的另外一个工具软件 -  emWinGUIBuilder。GUIBuilder应用程序是一款无需使用C编程语言即可创建对话框的工具,并且提供了丰富的控件。控件的摆放的位置以及控件本身的大小,都可通过拖放操作来实现,而无需编写源代码。根据上下文菜单,能添加其他各种属性。对这些控件的属性进行编辑后,就能实现对控件属性的调整。该操作无需使用C 编程语言。对话框可以另存为C 文件,并可以在emWin中直接加载。并可以通过修改该C文件,来增强功能。并且还提供了相应的事件处理框架,让客户完全注重在事件的处理上,而不是限于整个界面的设计上。

好了,那我们举个最简单的例子,来操作一下。

硬件准备:GG DK 3750

软件准备:GG DK 3750 -> Example -> guidemo,因为这个demo可以support touch。。这样就可以操作控件了。

1. 设计界面:

a. 打开energymicro\reptile\emwin\exe文件下的GUIBuilder.exe

b. 大家会在上面看到一排的控件。点击Window控件,创建一个窗口。并在属性窗口中设置窗口的大小为320*240,即xSize,ySize。

c. 然后依次在Window窗口,加入两个Button,两个Check,一个Progbar控件。并修改控件相应的属性。例如Button的Name属性,以及CheckBox的Label属性。

d. 控件的对齐,可以通过调整控件属性当中的xPos,yPos。

e.  如此,一个最简单的界面就设计完成了。其目的就是想通过Button及checkBox,来控制DK板子上的LED等。顺便熟悉整个事件响应的框架。

f. 点击File -> Save,生成WindowDLG.c文件。

2. 程序修改以及增加事件响应函数

a. 打开guidemo工程。为了可以操作DK上的LED灯,需要在添加bsp_dk_leds.c, 这个文件在energymicro\kits\common\bsp文件夹下。

b. 将WindowDLG.c拷贝到工程energymicro\kits\EFM32GG_DK3750\examples\guidemo目录下

c. 打开GUIDEMO.c中,包含WindowDLG.c ,并修改main函数。代码如下所示:

#include "GUI.h"
#include "WindowDLG.c"

int main(void)
{
  GUI_Init();
  PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
  WM_HWIN hWin;
  hWin = CreateWindow();
  PROGBAR_Handle hProg;
  hProg = WM_GetDialogItem(hWin, ID_PROGBAR_0);
  PROGBAR_SetValue(hProg, 0);
  PROGBAR_SetMinMax(hProg, 0, 5000);
  unsigned long ulDelay = 0;
  while(1)
  {
      GUI_Delay(10);
      ulDelay = ulDelay + 10;
      if(ulDelay > 5000)ulDelay = 0;
      PROGBAR_SetValue(hProg, ulDelay);
  }
}

d. 打开WindowDLG.c,在里面static void _cbDialog(WM_MESSAGE * pMsg)函数里面增加事件响应,例如:

case ID_BUTTON_0: // Notifications sent by 'LED1'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        static unsigned char ucFlag = 0;
        ucFlag = !ucFlag;
        if(ucFlag)
        {
            BSP_LedSet(1);
        }
        else
        {
            BSP_LedClear(1);
        }
        break;

e. 其他控件也如此类推。上面的两段函数中,都出现了ID_XXX,如ID_PROGBAR_0,ID_BUTTON_0,这个是控件的标识符。ID顾名思义就是类似于身份证了。Visual Studio中也有类似的概念。

f. 最后就是ProgBar的操作,稍微复杂一些。所有的函数,在手册里面都可以查得到的。。呵呵。

以下是运行起来的照片。这个demo,是最简单的一个demo,但是无论都复杂的demo,如果拆分开来,都是由简单的组合而成的。因此,只要跨过这道门槛,也就为将来铺平了道路。

如下是视频:

http://v.youku.com/v_show/id_XNTAzOTc3NzE2.html

由于这个是根据今天的回忆写的,怕有忘记的部分,所以把guidemo这个也上传了。可以参考,如果后续要做项目的话,还是建议重新新建一个工程来做,比较好。

相关的代码下载地址

http://download.csdn.net/detail/efm32/5010149

这篇关于emWin -- 可视化界面设计GUI Builder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680227

相关文章

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景   当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业

Golang GUI入门——andlabs ui

官方不提供gui标准库,只好寻求第三方库。 https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。 第三方gui库 找了好多,也比较了好多,最终决定使用的是还是 https://github.com/andlabs/ui 相信golang gui还会发展的更好,期待更优秀的gui库 由于andlabs

GUI编程08:画笔paint

本节内容视频链接:10、画笔paint_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p=10&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5 package com.yundait.lesson03;import java.awt.*;import java.awt.event.Wind

C++入门(06)安装QT并快速测试体验一个简单的C++GUI项目

文章目录 1. 清华镜像源下载2. 安装3. 开始菜单上的 QT 工具4. 打开 Qt Creator5. 简单的 GUI C++ 项目5.1 打开 Qt Creator 并创建新项目5.2 设计界面5.3 添加按钮的点击事件5.4 编译并运行项目 6. 信号和槽(Signals and Slots) 这里用到了C++类与对象的很多概念 1. 清华镜像源下载 https://

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术,在大数据分析中,是一个非常重要的关键部分。我们前期通过数据获取,数据处理,数据分析,得出结果,这些过程都是比较抽象的。如果是非数据分析专业人员,很难清楚我们这些工作,到底做了些什么事情。即使是专业人员,在不清楚项目,不了解业务规则,不熟悉技术细节的情况下。要搞清楚我们的大数据分析,这一系列过程,也是比较困难的。 我们在数据处理和分析完成后,一般来说,都需要形成结论报告。怎样让大

11Python的Pandas:可视化

Pandas本身并没有直接的可视化功能,但它与其他Python库(如Matplotlib和Seaborn)无缝集成,允许你快速创建各种图表和可视化。这里是一些使用Pandas数据进行可视化的常见方法: 1. 使用Matplotlib Pandas中的plot()方法实际上是基于Matplotlib的,你可以使用它来绘制各种基本图表,例如折线图、柱状图、散点图等。 import pandas

【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)「首先来看看目前已有的资料,还会不断更新哦~一次购买,后续不会再被收费哦,保证是全网最全资源,随着后续内容更新,价格会上涨,越早购买,价格越低,让大家再也不需要到处买断片资料啦~💰💸👋」�