Library Introduction
Qt's strategic failure doesn't mean Qt isn't a good framework.
I think Qt is at least a convenient framework, especially when combined with Python.
As the saying goes, “Life is short, I use Python”—the whole point is code that's janky but works. With PyQt, you can build a practical desktop tool in next to no time.
Of course, in my book, working isn't enough; at the very least the UI shouldn't be an eyesore.
And that's when the star of the show makes its grand entrance: the component library from the big-shot developer zhiyiYo (之一).
He has also open-sourced his own blog framework, though it's not the “simple but not simplistic” kind.
Here are some quick captures of the demo program in action (don't mind the GIF); the real thing looks great.
It already gets very close to Windows' native design language. I even specifically read Microsoft's Fluent UI design manual—it's hard to believe this is implemented with Qt.

240719 200839
How to Use
The official documentation covers this in detail. One thing I want to call out: I personally recommend using the PySide2 framework. The Qt family still has licensing controversy, and engineers like us usually don't need newer or more advanced component features—PySide2 is more than enough. The syntax and APIs differ slightly between generations, so if you don't settle on the right framework from the start, you'll run into trouble later.
pip install "PySide2-Fluent-Widgets[full]" -i https://pypi.org/simple/
One more thing to note: it's best not to mix component libraries. If you want to add another beautification library, stick to QSS-replacement-style tweaks at most—even QSS replacement can sometimes cause unknown conflicts, and so far I haven't found a library that only replaces colors.
Libraries You Can Combine
Libraries That Change QSS
Using Qt-Fluent-Widgets requires you to use all components within its framework if you want good visuals; it's very inconvenient to use your own custom components. If you only want the Fluent style but need components with your own custom functionality, you can combine it with Qt-Material.
pip install qt-material
Qt-Material has a very high priority and will completely take over Fluent's QSS.
Database Components
Use Redis for frontend/backend separation.
There's a portable (no-install) version of Redis:

Integrate the portable version into the backend source tree—it contains the executable—and give it a small wrapper.
import subprocess
import redis
import os
class uRedisServer():
def __init__(self):
# Redis服务器和配置文件的路径
self.redis_server_path = os.path.join(".", "ExTools/Redis", "redis-server.exe")
self.redis_conf_path = os.path.join(".", "ExTools/Redis", "redis.windows.conf")
self.redis_port = 6379
# Redis服务器进程的保存,便于后期操作此进程
self.RedisProcess = None # 用于存储Redis进程
def Open(self):
try:
self.RedisProcess = subprocess.Popen([self.redis_server_path, self.redis_conf_path], stdout=subprocess.PIPE)
return True
except Exception as e:
return False
def Close(self):
try:
if self.RedisProcess is None:
return False
self.RedisProcess.terminate() # 尝试优雅地关闭Redis服务器
self.RedisProcess = None
except Exception as e:
return False