https://github.com/dreamersgather/d14uikit
A GUI development library for modern Windows platform.
https://github.com/dreamersgather/d14uikit
cpp20 directx python3 uikit windows10 windows11
Last synced: about 1 year ago
JSON representation
A GUI development library for modern Windows platform.
- Host: GitHub
- URL: https://github.com/dreamersgather/d14uikit
- Owner: DreamersGather
- License: mit
- Created: 2023-12-08T11:51:51.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-26T14:32:02.000Z (about 1 year ago)
- Last Synced: 2025-03-26T15:42:25.081Z (about 1 year ago)
- Topics: cpp20, directx, python3, uikit, windows10, windows11
- Language: C
- Homepage: https://d14std.io/projects/uikit
- Size: 2.06 MB
- Stars: 198
- Watchers: 1
- Forks: 3
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# D14UIKit - Modern GUI on Windows
[](https://en.cppreference.com/w/cpp/20)
[](https://github.com/microsoft/DirectX-Graphics-Samples)
[](https://www.python.org/)
[](https://github.com/pybind/pybind11)

[](https://github.com/DreamersGather/D14UIKit/releases)
[](https://d14std.io/projects/uikit/en/latest/?badge=latest)



D14UIKit is a GUI development library for modern Windows platform.
## Getting Started
First, [download](https://github.com/DreamersGather/D14UIKit/releases) the latest development package for Python3:
* d14uikit_python.zip
* demo
* D14UIKit.pyd
* D14UIKit.pyi
* HelloWindow.py (You need to create this yourself)
Then, write your Python3 code (HelloWindow.py) as follows:
```python
# Preferably Python 3.10.x and later versions.
from D14UIKit import *
app = Application('HelloWindow')
mwnd = MainWindow('HelloWindow')
exit(app.run())
```
Finally, run `python3 HelloWindow.py`, and you're all set!

If you are familiar with **C++/Python3** and want to build your own GUI application on modern Windows platform, D14UIKit is a great choice: it is based on **DirectX 12** for high-performance rendering, provides a classic **OOP-style** UI framework, and more. If you want to learn details, feel free to visit the project website at https://d14std.io/projects/uikit 😎👍
## Features
## How It Works
## How to Build
We use the **Visual Studio IDE** for D14UIKit development. After downloading the code, you can directly open the solution (**D14UIKit.sln**) to build and debug. If you want to learn more details, you can refer to the [complete project build instructions](https://d14std.io/projects/uikit/en/latest/dev_guide/building.html).
## Roadmap
- [x] Migrate UIKit @ D14Engine to build a basic GUI development framework.
- [x] Implement PyBind wrapping to provide Python3 development interface.
- [x] Set up the project website and write the basic documentation.
- [x] Provide DirectX (2D/3D/Write/Composition) interfaces for C++ developers.
- [x] Support asynchronous UI event handling (Message & Polling).
#### Current Work:
- [ ] Support irregular, transparent, special-material (such as Acrylic) window and controls.
#### Future Goals:
- [ ] Support interactive development and building of UI (e.g. dynamic creation via Python interpreter).
- [ ] Complete the development documentation (feeling too lazy to do it 😂).
- [ ] Provide high-performance geometric drawing interfaces to help render complex dynamic charts.
- [ ] Introduce more modern UI concepts, such as advanced animations.
- [ ] What's next? 🤔
## Contributing
For developers who are not only satisfied with using the existing D14UIKit library but also want to participate in the growth of D14UIKit, you can first refer to [Building](https://d14std.io/projects/uikit/en/latest/dev_guide/building.html) to construct and debug the D14UIKit project. If you want to delve deeper, you can read [Architecture](https://d14std.io/projects/uikit/en/latest/dev_guide/architecture.html) to understand the overall architecture of D14UIKit. After you have made some interesting attempts, you can follow [Contributing](https://d14std.io/projects/uikit/en/latest/dev_guide/contributing.html) to contribute your code to the D14UIKit repository!
## About
The "UIKit" in the logo is in Segoe UI font, which is the default font for displaying Western languages on Vista and subsequent versions of Windows.