Coder Social home page Coder Social logo

leiyuzi / cutehmi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from michpolicht/cutehmi

0.0 1.0 0.0 4.44 MB

CuteHMI is an open-source HMI (Human Machine Interface) software written in C++ and QML, using Qt libraries as a framework. GitHub repository is a mirror!

Home Page: https://cutehmi.kde.org/

License: GNU Lesser General Public License v3.0

C++ 69.33% QML 26.16% HTML 1.67% Makefile 0.42% Awk 0.65% Shell 0.71% JavaScript 0.74% CSS 0.24% QMake 0.09%

cutehmi's Introduction

CuteHMI

License: LGPL 3.0 Build Status

CuteHMI is an open-source HMI (Human Machine Interface) software written in C++ and QML, using Qt libraries as a framework.

Qt Designer Demo

Note: While most of the project uses GNU Lesser General Public License version 3, some files are distributed under different licenses.

Branches

Branch "master" is a development branch. Development branch may contain source code that is undergoing deep changes, rendering it unusable. Consecutive branch numbers denote successive iterations of the project. Iteration of the project is related to build framework (repository layout and Qbs items). Extensions and tools are versioned independently and they have their own development status. Hence "perpetual beta" is desired development status of each branch.

Branch Build status Development status
master Build Status alpha
2 Build Status perpetual beta
1 Build Status alpha

Compiling

  1. Get the Qt toolkit. Open-source and commercial editions can be obtained from https://www.qt.io/. Qt can also be shipped with Linux distribution.

  2. Open CuteHMI.qbs file with QtCreator and simply build it.

  3. All extensions dependent on external libraries will be disabled, if these libraries could not be found. To make the process of finding the libraries and installing them under Windows easier, a set of Makefiles is provided, which allows the libraries to be build from sources. Check out external libraries for more details. Each extension may provide individual documentation on how to build it.

Remember that Qbs caches Probe items' results, so if the library is installed after the project has been configured with Qbs, it will not show up. You can use --force-probe-execution option to force Qbs to not use cached results.

Getting started

For an introduction you may want to run one of the existing examples. In CuteHMI everything is either a tool or an extension, therefore examples are also provided as extensions. Their names follow "CuteHMI.Examples.*" pattern. The most basic example CuteHMI.Examples.SimpleView.0 can be run with cutehmi.view.2tool by issuing following command.

cutehmi.view.2 --extension="CuteHMI.Examples.SimpleView.0"

To create your own extension you can simply copy one of the examples to your own subdirectory in extensions directory (e.g. Me/MyExtension.0), rename qbs file accordingly to match extension name (MyExtension.0.qbs), then edit qbs file and change name property to match extension name (name: "Me.MyExtension.0")

After that you can use --force-probe-execution Qbs option or delete build directory and rebuild whole project. Your extension should be installed and it can be run with cutehmi.view.2 tool.

cutehmi.view.2 --extension="Me.MyExtension.0"

Examples are listed in the documentation along with other extensions.

Internals

Directory structure of the project is organized as follows.

  • _sass, _layouts - directories used by GitHub Pages.
  • awkgward - code maintanance scripts (don't bother).
  • dev - development notes (irrelevant).
  • doc - a place where documentation shall be.
  • extensions - libraries and QML extensions.
  • external - directory containing "external" libraries.
  • extra - various stuff related to the project, such as T-shirts.
  • qbs - Qbs modules and imports.
  • tools - executable programs.

Dependencies between tools, extensions and external libraries

Two most important directories are extensions and tools. Extensions combine functionality of QML extensions and standard libraries. They can be utilized by end-user applications, but they can be also linked with each other. Some extensions may depend on external libraries.

Quick links

cutehmi's People

Contributors

michpolicht avatar w-zygmuntowicz avatar baranpirincal avatar yurchor avatar

Watchers

James Cloos avatar

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.