Code Monkey home page Code Monkey logo

papyros-qml-material's Introduction

Material Design implemented in QtQuick

Join the chat at https://gitter.im/papyros/qml-material

License GitHub release Build Status GitHub issues Bountysource

This is a library of QML widgets implementing Google's Material Design. It is completely cross platform, and runs on Linux, OS X, and Windows. It may also run on iOS and Android, though those platforms have not been tested and are not currently officially supported.

Brought to you by the Papyros development team.

Dependencies

  • Qt 5.5 or higher

Per-project installation using QPM

QPM package coming soon!

Just install using:

qpm install io.papyros.material

If you want to bundle the Roboto fonts in your project, file ABOVE the include(vendor/vendor.pri) line, add the following line:

OPTIONS += roboto

Per-project installation using git submodules and QMake

Add the submodule:

git submodule add [email protected]:papyros/qml-material.git material

Add the following DEFINE and .pri file to your project:

DEFINES += QPM_INIT\\(E\\)=\"E.addImportPath(QStringLiteral(\\\"qrc:/\\\"));\"

include(material/material.pri)

Then, in your main.cpp file or wherever you set up a QQmlApplicationEngine, call QPM_INIT on the engine like this:

QQmlApplicationEngine engine;
QPM_INIT(engine)
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

You should then be able to import Material 0.3 from your QML.

To optionally bundle the Roboto fonts in your project, add this line ABOVE the previously added include():

OPTIONS += roboto

Per-project installation using git submodules and CMake

Add the submodule:

git submodule add [email protected]:papyros/qml-material.git material

Add the following lines to your project's CMakeLists.txt, and make sure you add ${VENDOR_SOURCES} to your add_executable line:

add_definitions("-DQPM_INIT\\(E\\)=E.addImportPath\\(QStringLiteral\\(\\\"qrc:/\\\"\\)\\)\\;")

include(material/vendor.cmake)

Then, in your main.cpp file or wherever you set up a QQmlApplicationEngine, call QPM_INIT on the engine like this:

QQmlApplicationEngine engine;
QPM_INIT(engine)
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

You should then be able to import Material 0.3 from your QML.

Check out this example of an app using QML Material and CMake if you need further guidance.

System-wide installation

From the root of the repository, run:

mkdir build; cd build
qmake ..
make
make install # use sudo if necessary

Now check out the demo folder to see how to use Material Design from QtQuick!

Icons usage

When using the Icon component or the iconName property, qml-material looks for icons in the form of qrc:/icons/<category>/<name>.svg. Only a core set of icons used by qml-material icons are actually bundled with qml-material. To use icons in your own programs, you can either manually create a qrc file, or you can create icons.yml file and use the icons.py script from qml-material.

To use the icons.py script, create a file called icons.yml that looks like this:

icons:
  - action/settings
  - alert/warning
  - ...

Run icons.py, located in the scripts folder of the repository. This will download the latest version of all the icons listed in this file, storing them in a folder called icons. It also generates a resource file called icons/icons.qrc, which you should add to your QMake or CMake project.

Now whenever you add icons to the icons.yml file, just rerun icons.py and the new icons will be downloaded. To update your icons, just delete the icons folder and rerun icons.py.

Licensing

QML Material is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

The Material Design icons by Google are released under an Attribution 4.0 International license. The icons are directly copied from Google's GitHub repository at https://github.com/google/material-design-icons.

papyros-qml-material's People

Contributors

ibelieve avatar bgdncz avatar ricardomv avatar geiseri avatar nathanielhourt avatar okcerg avatar cyberbobs avatar eyelash avatar glaucopgomes avatar jneidlinger avatar egormatirov avatar sheraff avatar vially avatar marco-piccolino avatar pierremtb avatar phodju avatar malwoden avatar gennon avatar arisoul avatar remi-parain avatar flaviopontes avatar koloboid avatar tbourvon avatar timsueberkrueb avatar gitter-badger avatar uralbash avatar wanggjghost avatar zhang-peter avatar nbigaouette avatar immesys avatar

Watchers

James Cloos avatar Zhang Xin avatar  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.