I'm IceF, currently a student from Beihang University. Coding for fun. Trying everything.
PyQt-SiliconUI: A powerful and artistic UI library based on PyQt5
My-TODOs: A cross-platform desktop To-Do list.
A powerful and artistic UI library based on PyQt5,基于 PyQt5 的UI框架,灵动、优雅而轻便
License: GNU General Public License v3.0
I'm IceF, currently a student from Beihang University. Coding for fun. Trying everything.
PyQt-SiliconUI: A powerful and artistic UI library based on PyQt5
My-TODOs: A cross-platform desktop To-Do list.
components/widgets
中创建button
模块并存放这些基础控件components
中创建button
模块,提供SiButton
SiButtonLabel
SiButtonFlat
SiButtonFlatWithLabel
SiButtonHoldToComfirm
控件These improvements will be implemented to optimize the experience of programmers in modern editors.
widgets
, while those are not widgets (like animation objects) should be in folder abstracts
构建抽象类ABCSiAnimation
,整合在siui/core/animation/abstract.py
模块中,它是所有动画对象的基类,提供计时器,启停控制,设置当前值,目标值,进度计数器和ticked
信号。为了对数组提供支持,这个类引入numpy
以提高输入和输出值的灵活性
构建SiCounterAnimation
,整合在siui/core/animation/animation.py
模块中。它继承ABCSiAnimation
,具有以下特性:
构建SiExpAnimation
,整合在siui/core/animation/animation.py
模块中。它继承ABCSiAnimation
,具有以下特性:
factor
和bias
love the project!. but consider making the project available in English to allow for more contributors. Additionally, explore the possibility of creating a Qt Designer plugin for it.
This proposal aims to enhance the standardization and modernization of the component library, focusing on improving the developer experience and overall code quality.
As one of the maintainers of PyQt-Fluent-Widgets, I understand the significant benefits of standardizing and modernizing our codebase. These benefits include improved code writing experiences, enhanced error checking, seamless continuous integration, reduced errors, and performance improvements.
We will achieve our goals through a series of progressive PRs
pyproject.toml
to centralize and standardize project configuration.ruff
as the default linter and configure the rulesruff
as the default formatter and configure the line widthpyproject.toml
and pyright
to standardize syntax and ensure compatibilityPyside6分支长按按钮的Hint移出按钮范围后不会消失,SiButtonHoldtoConfirm的leaveEvent写成enterEvent了
我是这样成功把它跑起来的,手动修正相对路径,不知道标准不,但能用:
QQ 群友反馈 PyCharm
无须改动可以直接运行:
但是,还是希望您可以照顾下 VS Code
用户,规范相对路径 或 绝对路径。
我的环境:
┏[user0][main]
┖[~\Documents\PyQt-SiliconUI]> pdm list --tree
numpy 2.0.0 [ required: >=2.0.0 ]
pyqt5 5.15.10 [ required: >=5.15.10 ]
├── pyqt5-qt5 5.15.2 [ required: >=5.15.2 ]
└── pyqt5-sip 12.13.0 [ required: <13,>=12.13 ]
setuptools 70.1.1 [ required: >=70.1.1 ]
┏[user0][main]
┖[~\Documents\PyQt-SiliconUI]> pdm info && pdm info --env
PDM version:
2.16.1
Python Interpreter:
C:\Users\user0\Documents\PyQt-SiliconUI\.venv\Scripts\python.exe (3.12)
Project Root:
C:/Users/user0/Documents/PyQt-SiliconUI
Local Packages:
{
"implementation_name": "cpython",
"implementation_version": "3.12.4",
"os_name": "nt",
"platform_machine": "AMD64",
"platform_release": "10",
"platform_system": "Windows",
"platform_version": "10.0.19044",
"python_full_version": "3.12.4",
"platform_python_implementation": "CPython",
"python_version": "3.12",
"sys_platform": "win32"
}
tspr
and mix
which allow user to perform colors more easilyTraceback (most recent call last):
File "C:\Users\Howard Jones\AppData\Local\Programs\Python\Python312\Lib\site-packages\pyqt_siliconui-1.1-py3.12.egg\SiliconUI\SiMenu.py", line 215, in _popupAnimationHandler
TypeError: arguments did not match any overloaded call:
resize(self, a0: QSize): argument 1 has unexpected type 'int'
resize(self, w: int, h: int): argument 2 has unexpected type 'float'
rt
刚从bilibili来
当我打开示例项目滑动滚动条时出现了报错,其中siui\components\progress_bar\progress_bar.py文件255行有一个错误
Traceback (most recent call last):
File "F:\PyQt-SiliconUI\siui\components\progress_bar\progress_bar.py", line 255, in paintEvent
painter.drawArc(rect, start_angle, span_angle)
TypeError: arguments did not match any overloaded call:
drawArc(self, rect: QRectF, a: int, alen: int): argument 1 has unexpected type 'QRect'
drawArc(self, r: QRect, a: int, alen: int): argument 2 has unexpected type 'float'
drawArc(self, x: int, y: int, w: int, h: int, a: int, alen: int): argument 1 has unexpected type 'QRect'
需要把painter.drawArc(rect, start_angle, span_angle)
改为painter.drawArc(rect, int(start_angle), int(span_angle))
请问如何在qtdesigner使用该组件库的组件呢,手写对萌新来说太难了
SiLabel
中抽象出基础控件,并在components/widgets
下创建label
模块,将抽象出的基础控件写入label
模块components
中创建label.py
,并迁移SiLabel中三个控件SiLabel
SiPixLabel
SiDraggableLabel
当侧边栏信息增加的时候 切换到可滚动的页面会明显感觉到卡顿。且侧边栏信息越多越卡顿。
附[建议]:可以考虑部分侧边栏信息自动消失
SiColor
which provides token for getting colors, 64 member names will be allocated to every type of widgetsSiColorGroup
to replace dict and to unify all color sets in the whole project. A global color set will be instantiated acting as the theme color set which can be adopt to every SiliconUI widgets, while private color set can also be instantiated, allowing more flexible color managing.把components中各个组件打包,并将widgets包作为components的子包
python ui.py
当前工作目录 ui.py
无法获取缩放比例,设置为1,错误: module 'ctypes' has no attribute 'windll'
File "e:\Desktop\PyQt-SiliconUI-main\examples\Gallery for siui\start.py", line 7, in <module>
from siui.core.globals import SiGlobal
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\__init__.py", line 4, in <module>
import siui.components as components
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\__init__.py", line 1, in <module>
from siui.components.option_card import *
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\option_card\__init__.py", line 1, in <module>
from siui.components.option_card.option_card import *
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\option_card\option_card.py", line 3, in <module>
from siui.components.option_card.abstracts.option_card import ABCSiOptionCardPlane
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\option_card\abstracts\__init__.py", line 1, in <module>
from siui.components.option_card.abstracts.option_card import ABCSiOptionCardPlane
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\option_card\abstracts\option_card.py", line 1, in <module>
from siui.components.widgets import SiDenseHContainer, SiDenseVContainer, SiLabel
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\widgets\__init__.py", line 1, in <module>
import siui.components.widgets.abstracts as abstarcts
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\widgets\abstracts\__init__.py", line 2, in <module>
from siui.components.widgets.abstracts.button import *
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\widgets\abstracts\button.py", line 7, in <module>
from siui.components.widgets.abstracts.widget import SiWidget
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\components\widgets\abstracts\widget.py", line 9, in <module>
from siui.core.globals import SiGlobal
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\core\globals\__init__.py", line 1, in <module>
from siui.core.globals.globals import SiGlobal
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\core\globals\globals.py", line 9, in <module>
class SiliconUIGlobal:
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\core\globals\globals.py", line 24, in SiliconUIGlobal
iconpack = SiGlobalIconPack()
^^^^^^^^^^^^^^^^^^
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\gui\icons\parser.py", line 19, in __init__
self.reload_internals()
File "D:\appFoundation\Python\Python312\Lib\site-packages\pyqt_siliconui-1.0.1-py3.12.egg\siui\gui\icons\parser.py", line 25, in reload_internals
for package_filename in os.listdir(self.package_folder_path):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'D:\\appFoundation\\Python\\Python312\\Lib\\site-packages\\pyqt_siliconui-1.0.1-py3.12.egg\\siui\\gui\\icons\\packages'```
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.