Skip to content

Commit 89005dd

Browse files
committed
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
2 parents 67447ba + c8edc2c commit 89005dd

File tree

2 files changed

+95
-17
lines changed

2 files changed

+95
-17
lines changed

doc/build-osx.md

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -90,23 +90,6 @@ Other commands:
9090
./src/bitcoin-cli --help # Outputs a list of command-line options.
9191
./src/bitcoin-cli help # Outputs a list of RPC commands when the daemon is running.
9292

93-
Using Qt Creator as IDE
94-
------------------------
95-
You can use Qt Creator as an IDE, for bitcoin development.
96-
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
97-
Uncheck everything except Qt Creator during the installation process.
98-
99-
1. Make sure you installed everything through Homebrew mentioned above
100-
2. Do a proper ./configure --enable-debug
101-
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
102-
4. Enter "bitcoin-qt" as project name, enter src/qt as location
103-
5. Leave the file selection as it is
104-
6. Confirm the "summary page"
105-
7. In the "Projects" tab select "Manage Kits..."
106-
8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
107-
9. Select LLDB as debugger (you might need to set the path to your installation)
108-
10. Start debugging with Qt Creator
109-
11093
Notes
11194
-----
11295

src/qt/README.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
This directory contains the BitcoinQT graphical user interface (GUI). It uses the cross platform framework [QT](https://www1.qt.io/developers/).
2+
3+
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)).
4+
5+
## Compile and run
6+
7+
See build instructions ([OSX](/doc/build-osx.md), [Windows](/doc/build-windows.md), [Unix](/doc/build-unix.md), etc).
8+
9+
To run:
10+
11+
```sh
12+
./src/qt/bitcoin-qt
13+
```
14+
15+
## Files and directories
16+
17+
### forms
18+
19+
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.
20+
21+
### locale
22+
23+
Contains translations. They are periodically updated. The process is described [here](/doc/translation_process.md).
24+
25+
### res
26+
27+
Resources such as the icon.
28+
29+
### test
30+
31+
Tests.
32+
33+
### bitcoingui.(h/cpp)
34+
35+
Represents the main window of the Bitcoin UI.
36+
37+
### \*model.(h/cpp)
38+
39+
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).
40+
41+
ClientModel is used by the main application `bitcoingui` and several models like `peertablemodel`.
42+
43+
### \*page.(h/cpp)
44+
45+
A controller. `:NAMEpage.cpp` generally includes `:NAMEmodel.h` and `forms/:NAME.page.ui` with a similar `:NAME`.
46+
47+
### \*dialog.(h/cpp)
48+
49+
Various dialogs, e.g. to open a URL. Inherit from [QDialog](http://doc.qt.io/qt-4.8/qdialog.html).
50+
51+
### paymentserver.(h/cpp)
52+
53+
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).
54+
55+
### walletview.(h/cpp)
56+
57+
Represents the view to a single wallet.
58+
59+
### Other .h/cpp files
60+
61+
* UI elements like BitcoinAmountField, which inherit from QWidget.
62+
* `bitcoinstrings.cpp`: automatically generated
63+
* `bitcoinunits.(h/cpp)`: BTC / mBTC / etc handling
64+
* `callback.h`
65+
* `guiconstants.h`: UI colors, app name, etc
66+
* `guiutil.h`: several helper functions
67+
* `macdockiconhandler.(h/cpp)`
68+
* `macdockiconhandler.(h/cpp)`: display notifications in OSX
69+
70+
## Contribute
71+
72+
See [CONTRIBUTING.md](/CONTRIBUTING.md) for general guidelines. Specifically for QT:
73+
74+
* don't change `local/bitcoin_en.ts`; this happens [automatically](/doc/translation_process.md#writing-code-with-translations)
75+
76+
## Using Qt Creator as IDE
77+
78+
You can use Qt Creator as an IDE. This is especially useful if you want to change
79+
the UI layout.
80+
81+
Download and install the community edition of [Qt Creator](https://www.qt.io/download/).
82+
Uncheck everything except Qt Creator during the installation process.
83+
84+
Instructions for OSX:
85+
86+
1. Make sure you installed everything through Homebrew mentioned in the [OSX build instructions](/docs/build-osx.md)
87+
2. Use `./configure` with the `--enable-debug` flag
88+
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
89+
4. Enter "bitcoin-qt" as project name, enter src/qt as location
90+
5. Leave the file selection as it is
91+
6. Confirm the "summary page"
92+
7. In the "Projects" tab select "Manage Kits..."
93+
8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
94+
9. Select LLDB as debugger (you might need to set the path to your installation)
95+
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)

0 commit comments

Comments
 (0)