gio-qt/README.md
2019-08-02 14:52:31 +08:00

2.6 KiB

gio-qt: Qt wrapper library of Gio

Description

This is a Qt wrapper library for Gio (or say it's a glib/glibmm wrapper mainly focused on GIO module). This library is designed to be exception-free and avoid Qt application developer do direct access to glib/glibmm (so they can use Gio in a more Qt way).

Build

Build depts:

  • cmake >= 3.12.4
  • pkg-config (to find and use giomm module)
  • Qt5Core >= 5.6.3
  • Qt5Test (if you would like to build tests)
  • giomm-2.4
  • doxygen (to build documentations)

If you are using an older system which are using a lower cmake version and attempt to build this library, please turn off the BUILD_DOCS option.

Build manually

$ cd /path/to/your/source/code
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install

It will installed to /usr/local/lib by default. You may also need to do a sudo ldconfig /usr/local/lib after install.

Questions and Answers

Should I use?

Before this library release it's first stable tag (1.0.0) the answer is mostly no since the API may change at any time, and since this library is mainly for Deepin product for now so only the APIs we need will be implemented at first.

If you are writing a non-Qt application, please consider using glibmm. If you are writing Qt application and really wanna use this library, consider wait its API stable release or create a fork and start hacking!

What about generate Qt binding using GObject Introspection

As you can see gio-qt currently is a hand-crafted Qt/C++ bindings for GIO. Using GObject Introspection (gir) to generate code could be a really good idea but we currently doesn't have very enough time to look into it.

It's definitely worth to look into gir to generate Qt binding and actually there was some cool guys working on this idea (see GObject Consume) and worth to check it out. Due to the project time limit so we are not going to use it currently, but we encourage you contirbute on that project if you are familiar to gir.

Documentation

For Deepin there will be a libgio-qt-doc package, if you are building it manually with BUILD_DOCS option enabled, there will be a docs folder inside your build folder, and there will be a doxygen generated html folder and also a gio-qt.qch for QtCreator.

License

GPLv3