# PyQt-SiliconUI, a PyQt5 widget set with an artistic visual language

> PyQt-SiliconUI is a Python UI library built on PyQt5 that offers a designer-flavored widget set, with buttons, containers, editors, popovers, sliders, flow and waterfall layouts, animations and custom painting. It is not on PyPI yet, and the project is mid-refactor, so only the modules listed as refactored are safe to build on today.

**ChinaIceF/PyQt-SiliconUI** — A powerful and artistic UI library based on PyQt5，基于 PyQt5 的UI框架，灵动、优雅而轻便

- Repository: https://github.com/ChinaIceF/PyQt-SiliconUI
- Stars: 1,289 · Forks: 130
- Language: Python
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/chinaicef-pyqt-siliconui

## A style library, not an application framework

PyQt-SiliconUI describes itself as an artistic UI library based on PyQt5, and the README is careful about what that means. It is a set of widgets, components and drawing utilities that you drop into a PyQt5 application, not a scaffold that generates one for you. The visual target is the Fluent-style icon set, since the package data files listed in setup.py include a Fluent icon package in filled, regular and light variants. The scope of the refactored modules shows the shape of the library: buttons, containers managed with the Qt layout system, input and edit widgets, proxy widgets and graphic utilities, label widgets for text and images, menu components, popover-style widgets such as date pickers and time pickers, progress bars, sliders with horizontal variants and scrollbar handles, plus core animation utilities, event filters and the drawing functions everything else paints through. The core modules are where the library's own opinion lives.

## Installing from a clone, because there is no PyPI release

The installation path is deliberately minimal and it is the one thing a reader must not try to shortcut. The project states plainly that it is still under active development and is not yet available on PyPi, though it will be in the future. So the documented route is to clone the repository and run a packaging command in the terminal. The `examples/Gallery for siui/` directory holds the example gallery, and running its `start.py` entry point is the fastest way to see the widgets and components in one place. Expect to run it from the repository root, since the path given in the README is relative to the checkout.

```bash
python setup.py install
```

The gallery itself is started the same way, from the checkout root:

```bash
examples/Gallery for siui/start.py
```

## The Gallery is also the documentation

The gallery is not a demo of one screen. The README directs readers to it to explore the widgets, components and framework the library offers, and it doubles as the catalogue of what is currently trustworthy, because refactored and legacy widgets sit on separate pages. The repository also carries an `examples/My-TODOs/` directory, and the See Also section points at My-TODOs, a cross-platform desktop to-do list built on top of this library, which is the reference project to read if you want to see how the pieces are composed rather than catalogued. A separate `examples/button/` directory exists for a focused example. The `docs/` directory holds the Chinese version of the README, so the audience for this library is bilingual, and the English README is the one that leads with the refactoring status.

## Only the refactored modules are safe to depend on

This is the most important paragraph in the README for a new user. The widget refactoring is nearing completion, and the advice is to try the refactored widgets on the dedicated page in the gallery. Anyone planning a project soon is strongly recommended to use only the widgets listed under Refactored Widgets, because the older widgets have many issues and are being gradually replaced. The application templates are in a worse state: they are under a complete overhaul, that work will begin once the core widget and component refactors are done, and the project strongly advises against using the old templates for real projects until the refactor is complete. The listed modules that are actively maintained are `siui/components/button.py`, `container.py`, `editor.py`, `graphic.py`, `label.py`, `layout.py`, `menu_.py`, `popover.py`, `progress_bar_.py` and `slider_.py`, and in core the files `siui/core/animation.py`, `event_filter.py` and `painter.py`. Outdated modules will be removed from the repository once the replacements land.

## Two dependency lists that do not match

The packaging metadata carries an inconsistency worth catching before you install anything. The `pyproject.toml` file declares the project as PyQt-SiliconUI version 1.0.1, requires Python 3.8 or newer, and lists three runtime dependencies: `PyQt5>=5.15.10`, `typing-extensions>=4.12.2` and `python-dateutil>=2.9.0`. The `setup.py` file declares version 1.01 and lists a different set: `PyQt5>=5.15.10`, `numpy` and `pyperclip`. So the two files disagree on the version string and on two of the three packages, and a build driven by one path installs a different dependency set than the other. Both files declare the same author and the same project URL, and setup.py packages the distribution with `find_packages` while excluding the `examples` directory, and it ships the three Fluent icon package files as data. The pyproject file also defines the development toolchain: `pyqt5-stubs` for stubs, `ruff` for linting with a line length of 120 and a py38 target, `nuitka` for building and `viztracer` for profiling.

## A GPL-3.0 library with an alpha classification

The licence is GPL-3.0, with the file at the repository root and the copyright line reading 2024-2025 by ChinaIceF. That matters more than usual for a UI component library, because a widget set gets copied into applications that are then distributed, and a copyleft licence attaches obligations to the combined work rather than to the import. The package classifiers state the development status as 3 - Alpha and the intended audience as developers, with Python 3.6 through 3.12 listed, even though pyproject requires 3.8 or newer, another small inconsistency in the metadata. The repository has no GitHub releases, so there is no tag to pin and no published version history to consult. The last push to the repository was on 2026-05-31, and the repository is not archived.

## Where this library is the wrong choice

There are three situations where picking this up costs you more than it saves. The first is a project that needs a released, versioned package. There is nothing on PyPI, there are no GitHub releases, and the source of truth is a repository you clone, which means you own the upgrade. The second is a project that wants a starting application. The templates are being rewritten from scratch and the project tells you not to use them for real work, so you would write the application shell yourself in any case. The third is a project that needs the full widget set today. Only the refactored modules are recommended, so any screen that needs a component outside that list either waits for the refactor or gets written directly against Qt. There is also a boundary on the framework itself: it is built on PyQt5, and while the project metadata mentions PySide6 in the package description, the install path and the dependency declarations are PyQt5, and the topic tags list both qt5 and qt6 without the documentation promising a PySide6 build.

## Conclusion

Adopt PyQt-SiliconUI if you are building a PyQt5 desktop application and want a cohesive widget set rather than a scattering of one-off styles, and skip it if you need a stable published package, a maintained application template, or anything outside the refactored module list. Verify three things before you commit: which widgets you actually need against the refactored list, because the older widgets are described as having many issues and are being replaced; that you can live with a clone-and-install workflow, since the project states it is not yet available on PyPi; and which of the two dependency lists your environment should follow, because pyproject.toml and setup.py do not name the same packages.

## FAQ

### How do I install PyQt-SiliconUI?

Clone the repository and run `python setup.py install` in your terminal. The project states it is not yet available on PyPi, though it says it will be in the future, so installing from a source checkout is the documented route.

### Which PyQt-SiliconUI widgets should I use in a new project?

Only the ones listed under Refactored Widgets. The README strongly recommends that, says the older widgets have many issues and are being gradually replaced, and advises against the old application templates for real projects until the refactor is complete.

### Can I see the PyQt-SiliconUI widgets without writing an app?

Yes. The repository ships an example gallery under `examples/Gallery for siui/` and the README says to run its `start.py` entry point to explore the widgets, components and framework, including a separate page for the refactored ones.

### What license does PyQt-SiliconUI use?

GPL-3.0, with the text in the LICENSE file at the repository root and a copyright line reading 2024-2025 by ChinaIceF. The packaging classifiers also mark the project as GPL-3.0 licensed and its development status as alpha.

### What dependencies does PyQt-SiliconUI need?

The pyproject.toml file lists `PyQt5>=5.15.10`, `typing-extensions>=4.12.2` and `python-dateutil>=2.9.0` with Python 3.8 or newer, while setup.py lists `PyQt5>=5.15.10`, `numpy` and `pyperclip`. The two files declare different version strings as well, 1.0.1 and 1.01.

## Sources

- [ChinaIceF/PyQt-SiliconUI on GitHub](https://github.com/ChinaIceF/PyQt-SiliconUI)
- [Issues](https://github.com/ChinaIceF/PyQt-SiliconUI/issues)
- [License: GPL-3.0](https://github.com/ChinaIceF/PyQt-SiliconUI/blob/main/LICENSE)
- [README](https://github.com/ChinaIceF/PyQt-SiliconUI/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/chinaicef-pyqt-siliconui
