Git Product home page Git Product logo

idea4good / guilitesamples Goto Github PK

View Code? Open in Web Editor NEW
627.0 55.0 191.0 205.52 MB

✨Small interesting GUI effects could be reused everywhere

Home Page: http://v.youku.com/v_show/id_XMzA5NTMzMTYyOA

License: Apache License 2.0

Java 0.02% C++ 56.57% CMake 0.02% QMake 0.01% C 43.03% Shell 0.01% Swift 0.05% Batchfile 0.01% C# 0.01% Assembly 0.25% Go 0.01% Dockerfile 0.01% PowerShell 0.02%
embedded gui c cpp mcu crossplatform graphics-library

guilitesamples's Introduction

Image

Build wonderful GUI with a few lines of code

badge_build badge_docker badge_platform badge_lincense badge_lincense

中文

  • GuiLite samples contain 21 cross-platform projects that are all based on GuiLite. They can show you how to use GuiLite's interface and how GuiLite works on iOS, Android, GNU/Linux, Windows, and macOS platforms.
  • GuiLite samples have been tested to compile successfully 100% of the time and run on all kinds of devices, including PCs, phones, microcontrollers, and embedded Internet of Things (IoT) devices.
  • Supported IDEs: Visual Studio, Qt Creator, Keil
  • GuiLite samples can run on web pages and make 3D features with WebGL. For more details, visit GuiLiteWeb.
  • GuiLite samples can run in a Docker container with the single command below:
    • sudo docker run -it --privileged -v /dev:/dev-share idea4good/gui-lite:latest bash /run.sh

Microcontroller demos:


star field effect

particle effect

wave widget

navigate/click widgets

multi-layer GUI

3D effect

3D effect

3D effect

smart timer

molecule movement effect

3D wave effect

HelloPendulum effect
  • MCU Hardware: STM32F103ZET6(512K ROM, 64K RAM) with 240 * 320 16bits color TFT LCD
  • MCU Software: No operating system (OS) with GuiLite embedded GUI framework
  • How to port on any type of microcontroller (MCU)?
  • Also supports: Windows / Linux / Qt

Hello Transparent

HelloTransparent

Hello Transparent is a 300+ lines code sample for transparent widgets. It runs on Windows, Linux, and Qt.

Hello Scroll

HelloScroll

Hello Scroll is a 300+ lines code sample for scroll widgets. It runs on Windows, Linux, and Qt.

Hello Nets

HelloNets-pc

Hello Nets is a 100+ lines code sample to build 3D physics apps with GuiLite. It runs on Windows, Linux, and MCUs.

Hello Widgets

HelloWidgets

Hello Widgets is a 100+ lines code sample to develop GUI with GuiLite widgets. It runs on Windows, Linux, and MCUs.

Hello Animation

HelloAnimation

Hello Animation is a 100+ lines code sample to create animation. It runs on Windows, Linux, and MCUs.

Hello Slide

HelloSlide

Hello Slide is a 100+ lines code sample for making sliding UI. It runs on Windows, Linux, and MCUs.

Hello Font

HelloFont

Hello Font is a 100+ lines code sample for using multi-language feature(UTF-8). It runs on Windows, Linux, and MCUs.

Hello GuiLite

HelloGuiLite

Hello GuiLite is a 100+ lines code sample to initialize GuiLite, layout UI widgets, and map messages. It runs on Windows, Linux, and MCUs.

Host Monitor

On Mac & iOS:

Mac iOS

On Android & ARM Linux embedded:

Android Linux

On Windows Mixed Reality:

Win MR

Host Monitor has 2,000 lines of UI code, showing how to create layouts and customize widgets.

Code Description

  • HostMonitor\UICode\source\ui_layout: UI Layout
  • HostMonitor\UICode\source\ui_ctrl_ex: Customize your widgets

Cross platform

  • HostMonitor\BuildAndroid: Android (Java)
  • HostMonitor\BuildIOS: iOS (Swift)
  • HostMonitor\BuildLinux: for Linux (C)
  • HostMonitor\BuildWin32: Windows (C)
  • HostMonitor\BuildUWP: UWP including Mixed/Virtual Reality (CX)
  • HostMonitor\BuildMacCmd: Mac command line (Swift)
  • HostMonitor\BuildMacCocoa: MAC UI (Swift)
  • HostMonitor\BuildGo: Linux (Golang + C++)

Build "host monitor"

UART on Android phone

Download Android APP

Suggestions

Looks complex? Trust me, you can do it. We started where you are now, and we built amazing things.

  • Dare to build it
  • Dare to make your own modifications.
  • Dare to create your own UI framework.

Repository Mirror

Gitee in China

Thanks

Thank you to everyone in the QQ group for your help in making GuiLite better! join us and help us make GuiLite even better!


開發群🔑:875721211

公众号🔑:阿布编程
欢迎有条件的同学加入“超级群”🚄⏪⏪⏪,一同打造全球最强Lite GUI👑

guilitesamples's People

Contributors

idea4good avatar inobelar avatar jacklaoz avatar kof98765 avatar menee avatar pixelparas avatar quorafind avatar rayworks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guilitesamples's Issues

privacy concerns

The examples go against (my) privacy expectations for open-source projects in 2 points:

  • all examples try to call home (powerbi.com) via the "hidden" file .sync_build.sh on Linux; this should be opt-in, not something by-default and without a visible notice (yes, I know this is metioned in https://github.com/idea4good/GuiLite#hero-features).
  • instructions suggest to run binary-distributed xWindow (which is already a red flag) with sudo — seriously...?!

macos high window content flickering

Running a GUILiteDemo on macOS Monterey and see a lot of flickering, see a screencast below

screencast.2022-05-27.18-59-55.mp4

it's a bit slower at the time I was recording it, but after some idle running, the flicker increases.
Also, rendering stops when selecting a menu.

建议

建议给GuiLiteSamples写个说明文档,readme说明内容有点少。

HelloGuiLite display unexpected pixels

When I run BuildLinux/HelloGuiLite /dev/fb0, it shows:
image

and the command line output:
image

Why ? Can anyone help?

system: CentOS Linux release 7.6.1810 (Core) (official minimal installation)
platform: VMWare 12.5.2 800M RAM

小白的建议

兄弟,你能不能写个涵盖大部分使用方法或者是函数的文档啊,感觉看起来好累啊……

Mac上编译HostMonitor的时候出现错误

错误信息如下:
[ 95%] Built target UIcode
[ 97%] Linking CXX executable HostMonitor
Undefined symbols for architecture x86_64:
"c_bitmap::draw_bitmap(c_surface*, int, struct_bitmap_info const*, int, int, unsigned int)", referenced from:
c_bitmap_wave_ctrl::on_paint() in libUIcode.a(wave_ctrl_ex.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [BuildMacCmd/HostMonitor] Error 1
make[1]: *** [BuildMacCmd/CMakeFiles/HostMonitor.dir/all] Error 2
make: *** [all] Error 2

use uclibc on arm: fatal error: execinfo.h: No such file or directory

使用海思uclibc工具链编译ARM版本的HostMonitor示例时,出现如下错误:
~/GuiLiteSamples/HostMonitor/BuildLinux/main.cpp:8:22: fatal error: execinfo.h: No such file or directory

通过注释掉main.cpp文件中的include<execinfo.h>发现可以正常编译通过,可能这个包含不是必须的,建议移除掉。

此外在链接阶段,GCC-4.9.4依然会出现前面提出的issue #24

GCC-4.8.4编译出现undefined reference to `operator delete(void*, unsigned long)'

HostMonitor示例在Ubuntu18.04和Ubuntu16.04(GCC-5.4.0)上编译OK,但是在Ubuntu 14.04(GCC-4.8.4)上编译出现链接失败错误:

[100%] Linking CXX executable HostMonitor
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libgui.a(button.cpp.o): In function `c_button::clone()':
button.cpp:(.text._ZN8c_button5cloneEv[_ZN8c_button5cloneEv]+0x4b): undefined reference to `operator delete(void*, unsigned long)'
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libgui.a(edit.cpp.o): In function `c_edit::clone()':
edit.cpp:(.text._ZN6c_edit5cloneEv[_ZN6c_edit5cloneEv]+0x4b): undefined reference to `operator delete(void*, unsigned long)'
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libgui.a(edit.cpp.o): In function `c_keyboard::~c_keyboard()':
edit.cpp:(.text._ZN10c_keyboardD0Ev[_ZN10c_keyboardD5Ev]+0x25): undefined reference to `operator delete(void*, unsigned long)'
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libgui.a(keyboard.cpp.o): In function `c_keyboard::clone()':
keyboard.cpp:(.text._ZN10c_keyboard5cloneEv[_ZN10c_keyboard5cloneEv]+0x4b): undefined reference to `operator delete(void*, unsigned long)'
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libgui.a(keyboard.cpp.o): In function `c_keyboard_button::clone()':
keyboard.cpp:(.text._ZN17c_keyboard_button5cloneEv[_ZN17c_keyboard_button5cloneEv]+0x4b): undefined reference to `operator delete(void*, unsigned long)'
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libgui.a(keyboard.cpp.o):keyboard.cpp:(.text._ZN17c_keyboard_buttonD0Ev[_ZN17c_keyboard_buttonD5Ev]+0x25): more undefined references to `operator delete(void*, unsigned long)' follow
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libcore.a(display.cpp.o): In function `c_display::snap_shot(char const*)':
display.cpp:(.text+0x9b4): undefined reference to `__cxa_throw_bad_array_new_length'
~/GuiLiteSamples/HostMonitor/BuildLinux/libs/libcore.a(wave_ctrl.cpp.o): In function `c_wave_ctrl::clone()':
wave_ctrl.cpp:(.text._ZN11c_wave_ctrl5cloneEv[_ZN11c_wave_ctrl5cloneEv]+0x35): undefined reference to `operator delete(void*, unsigned long)'
collect2: error: ld returned 1 exit status
make[2]: *** [BuildLinux/HostMonitor] Error 1
make[1]: *** [BuildLinux/CMakeFiles/HostMonitor.dir/all] Error 2
make: *** [all] Error 2

Win32API

能否出一个基于原生Win32 API的例子,而不是MFC。

Waveform sample in QT widget

Hi,

I liked GuiLite project and the sample which you have showcased is awesome.
I'm a QT developer i have checked the samples and didn't found the waveform drawing in QT application.
Is waveform drawing is possible in QT widget?.
I have planned to use this toolkit for drawing audio waveform please suggest me, how we can use it in QT widget.

Thanks,
Sundaram

示例都无法编译通过,都提示 -fPIC 对 cmake 不太了解,我这个要怎么弄

这是最后的示提(前面还有很多都是 -fPIC 的):
/usr/bin/ld: /home/C/GuiLiteSamples/HostMonitor/BuildLinux/libs/libcore.a(msg_linux.cpp.o): relocation R_X86_64_32 against .bss' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: 输出不可表示的节
collect2: error: ld returned 1 exit status
CMakeFiles/sample_native.dir/build.make:120: recipe for target 'sample_native' failed
make[2]: *** [sample_native] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/sample_native.dir/all' failed
make[1]: *** [CMakeFiles/sample_native.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2`

在Ubuntu 18.04上除了HostMonitor外其他示例显示不正常

  • 编译测试环境:VirtualBox 5.2.10 ,Ubuntu 18.04 64bit GNOME桌面环境
  • 示例编译运行:编译构建成功,使用display-x64来运行示例
  • 示例测试结果:除了HostMonitor显示正常外,其他示例均显示不正常,具体请看如下截图

HelloAnimation Sample:
helloanimation
HelloFont Sample:
hellofont
HelloGuiLite Sample:
helloguilite
Hello Particle Sample:
helloparticle
HelloSlide Sample:
helloslide
HelloWave Sample:
hellowave
[OK]HostMonitor Sample:
hostmonitor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.