Merge #11761: [docs] initial QT documentation
c8edc2c
[docs] initial QT documentation, move Qt Creator instructions (Sjors Provoost)
Pull request description:
I'll update this as I figure out how everything is tied together, but I think it's a useful enough start.
Tree-SHA512: d96e5c9ba8ccc3a1b92a0894a8a8449317100eebb14e5d390b51793534458f50eac296cf2945fccf81b85aff23fa32d91d6015a0a76ada4f7091a400d7508ae5
pull/585/head
commit
89005ddad1
@ -0,0 +1,95 @@
|
||||
This directory contains the BitcoinQT graphical user interface (GUI). It uses the cross platform framework [QT](https://www1.qt.io/developers/).
|
||||
|
||||
The current precise version for QT 5 is specified in [qt.mk](/depends/packages/qt.mk). QT 4 is also supported (see [#8263](https://github.com/bitcoin/bitcoin/issues/8263)).
|
||||
|
||||
## Compile and run
|
||||
|
||||
See build instructions ([OSX](/doc/build-osx.md), [Windows](/doc/build-windows.md), [Unix](/doc/build-unix.md), etc).
|
||||
|
||||
To run:
|
||||
|
||||
```sh
|
||||
./src/qt/bitcoin-qt
|
||||
```
|
||||
|
||||
## Files and directories
|
||||
|
||||
### forms
|
||||
|
||||
Contains [Designer UI](http://doc.qt.io/qt-5.9/designer-using-a-ui-file.html) files. They are created with [Qt Creator](#use-qt-Creator-as IDE), but can be edited using any text editor.
|
||||
|
||||
### locale
|
||||
|
||||
Contains translations. They are periodically updated. The process is described [here](/doc/translation_process.md).
|
||||
|
||||
### res
|
||||
|
||||
Resources such as the icon.
|
||||
|
||||
### test
|
||||
|
||||
Tests.
|
||||
|
||||
### bitcoingui.(h/cpp)
|
||||
|
||||
Represents the main window of the Bitcoin UI.
|
||||
|
||||
### \*model.(h/cpp)
|
||||
|
||||
The model. When it has a corresponding controller, it generally inherits from [QAbstractTableModel](http://doc.qt.io/qt-5/qabstracttablemodel.html). Models that are used by controllers as helpers inherit from other QT classes like [QValidator](http://doc.qt.io/qt-5/qvalidator.html).
|
||||
|
||||
ClientModel is used by the main application `bitcoingui` and several models like `peertablemodel`.
|
||||
|
||||
### \*page.(h/cpp)
|
||||
|
||||
A controller. `:NAMEpage.cpp` generally includes `:NAMEmodel.h` and `forms/:NAME.page.ui` with a similar `:NAME`.
|
||||
|
||||
### \*dialog.(h/cpp)
|
||||
|
||||
Various dialogs, e.g. to open a URL. Inherit from [QDialog](http://doc.qt.io/qt-4.8/qdialog.html).
|
||||
|
||||
### paymentserver.(h/cpp)
|
||||
|
||||
Used to process BIP21 and BIP70 (see https://github.com/bitcoin/bitcoin/pull/11622) payment URI / requests. Also handles URI based application switching (e.g. when following a bitcoin:... link from a browser).
|
||||
|
||||
### walletview.(h/cpp)
|
||||
|
||||
Represents the view to a single wallet.
|
||||
|
||||
### Other .h/cpp files
|
||||
|
||||
* UI elements like BitcoinAmountField, which inherit from QWidget.
|
||||
* `bitcoinstrings.cpp`: automatically generated
|
||||
* `bitcoinunits.(h/cpp)`: BTC / mBTC / etc handling
|
||||
* `callback.h`
|
||||
* `guiconstants.h`: UI colors, app name, etc
|
||||
* `guiutil.h`: several helper functions
|
||||
* `macdockiconhandler.(h/cpp)`
|
||||
* `macdockiconhandler.(h/cpp)`: display notifications in OSX
|
||||
|
||||
## Contribute
|
||||
|
||||
See [CONTRIBUTING.md](/CONTRIBUTING.md) for general guidelines. Specifically for QT:
|
||||
|
||||
* don't change `local/bitcoin_en.ts`; this happens [automatically](/doc/translation_process.md#writing-code-with-translations)
|
||||
|
||||
## Using Qt Creator as IDE
|
||||
|
||||
You can use Qt Creator as an IDE. This is especially useful if you want to change
|
||||
the UI layout.
|
||||
|
||||
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
|
||||
Uncheck everything except Qt Creator during the installation process.
|
||||
|
||||
Instructions for OSX:
|
||||
|
||||
1. Make sure you installed everything through Homebrew mentioned in the [OSX build instructions](/docs/build-osx.md)
|
||||
2. Use `./configure` with the `--enable-debug` flag
|
||||
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
|
||||
4. Enter "bitcoin-qt" as project name, enter src/qt as location
|
||||
5. Leave the file selection as it is
|
||||
6. Confirm the "summary page"
|
||||
7. In the "Projects" tab select "Manage Kits..."
|
||||
8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
|
||||
9. Select LLDB as debugger (you might need to set the path to your installation)
|
||||
10. Start debugging with Qt Creator (you might need to the executable to "bitcoin-qt" under "Run", which is where you can also add command line arguments)
|
Loading…
Reference in new issue