git / moonbite-core / src/qt/README.md · raw

This directory contains the LitecoinQT 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).## Compile and runSee build instructions ([macOS](/doc/build-osx.md), [Windows](/doc/build-windows.md), [Unix](/doc/build-unix.md), etc).To run:```sh./src/qt/litecoin-qt```## Files and directories### formsContains [Designer UI](https://doc.qt.io/qt-5.9/designer-using-a-ui-file.html) files. They are created with [Qt Creator](#using-qt-creator-as-ide), but can be edited using any text editor.### localeContains translations. They are periodically updated. The process is described [here](/doc/translation_process.md).### resResources such as the icon.### testTests.### bitcoingui.(h/cpp)Represents the main window of the Litecoin UI.### \*model.(h/cpp)The model. When it has a corresponding controller, it generally inherits from  [QAbstractTableModel](https://doc.qt.io/qt-5/qabstracttablemodel.html). Models that are used by controllers as helpers inherit from other Qt classes like [QValidator](https://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](https://doc.qt.io/qt-5/qdialog.html).### paymentserver.(h/cpp)Used to process BIP21 payment URI requests. Also handles URI based application switching (e.g. when following a litecoin:... 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/mm)`: macOS dock icon handler* `macnotificationhandler.(h/mm)`: display notifications in macOS## ContributeSee [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 IDEYou can use Qt Creator as an IDE. This is especially useful if you want to changethe 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 macOS:1. Make sure you installed everything through Homebrew mentioned in the [macOS build instructions](/doc/build-osx.md)2. Use `./configure` with the `--enable-debug` flag3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project4. Enter "litecoin-qt" as project name, enter src/qt as location5. Leave the file selection as it is6. 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 compiler9. 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 "litecoin-qt" under "Run", which is where you can also add command line arguments)