Skip to content

DreamersGather/D14UIKit

Repository files navigation

D14UIKit - Modern GUI on Windows

Static Badge Static Badge Static Badge Static Badge

Build Status GitHub Release Documentation Status GitHub Repo stars GitHub Downloads (all assets, all releases)

D14UIKit is a GUI development library for modern Windows platform.

Getting Started

First, download 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:

# 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.

Roadmap

  • Migrate UIKit @ D14Engine to build a basic GUI development framework.
  • Implement PyBind wrapping to provide Python3 development interface.
  • Set up the project website and write the basic documentation.
  • Provide DirectX (2D/3D/Write/Composition) interfaces for C++ developers.
  • 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 to construct and debug the D14UIKit project. If you want to delve deeper, you can read Architecture to understand the overall architecture of D14UIKit. After you have made some interesting attempts, you can follow Contributing 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.