A lightweight and extensible styled UI component kit for PySide6 applications.
Project description
PySide6StyleKit
PySide6 アプリのための軽量で拡張性の高いスタイル済み UI コンポーネントキット。
A lightweight and extensible styled UI component kit for PySide6 applications.
特徴 / Features
- 統一テーマ(ライト/ダーク/背景色)
Unified themes (light, dark, background-aware) - スタイル済みウィジェット(Label / LineEdit / Button / Indus Alternate Button / Indus Lamp / Indus Momentary Button / CheckBox / RadioButton / ComboBox / Slider / ProgressBar / TextEdit / GroupBox など)
Styled widgets such as Label, LineEdit, Button, Indus Alternate Button, Indus Lamp, Indus Momentary Button, CheckBox, RadioButton, ComboBox, Slider, ProgressBar, TextEdit, and GroupBox - GroupBox タイトルの自動中央揃え(フォントサイズ変更に追随)
- 数値バリデーション(int / float / range)
Robust numeric validation (int, float, range) numeric_rangeは Enter またはフォーカスアウト時に範囲検証
numeric_rangeis verified on Enter or focus-out- エラー表示の柔軟な制御(枠線のみ・メッセージ表示)
Flexible error signaling (border-only or message) - 拡張しやすいモジュール構造
Modular and extensible architecture - 実用的なサンプルコード付き
Includes practical example scripts
インストール / Installation
pip install pyside6stylekit
使い方 / Usage
examples/demo.py と examples/demo_indus.py に基本的な使い方があります。
Basic usage is available in examples/demo.py and examples/demo_indus.py.
サポート widget / Supported widgets
StyledLabelStyledLineEditStyledButtonStyledCheckBoxStyledRadioButtonStyledComboBoxStyledSliderStyledProgressBarStyledTextEditStyledGroupBoxIndusAlternateButton,IndusLamp,IndusMomentaryButton
※ さらに Theme 本体で色やサイズ設定を管理し、各 widget のスタイルを統一しています。
利用可能なカラーモード / Available color modes
Theme.light()Theme.dark()Theme(primary=<hex>, mode='light'|'dark', background='<hex>')
サポート色(utils/colors.py) / Supported colors
normalize_color で次のキーワードを16進色に変換します:
- red:
#ff0000 - green:
#00ff00 - blue:
#0000ff - black:
#000000 - white:
#ffffff - gray:
#808080 - orange:
#ffa500 - yellow:
#ffff00 - purple:
#800080 - pink:
#ffc0cb - sky:
#87ceeb
normalize_color は '#rrggbb' 形式や (r,g,b) 形式も受け付けます。
色サンプル / Color samples
from pyside6stylekit.utils.colors import normalize_color, adjust_color
print(normalize_color('sky')) # #87ceeb
print(normalize_color((255,16,128))) # #ff1080
print(adjust_color('#ff1080', 0.8)) # #cc0d66
from pyside6stylekit import Theme, StyledLabel, StyledLineEdit, StyledButton, StyledGroupBox
theme = Theme.light()
label = StyledLabel("Hello")
lineedit = StyledLineEdit("Range (0-120)", theme, mode="numeric_range", min_val=0, max_val=120)
button = StyledButton("Submit")
# GroupBox with adaptive title positioning
groupbox = StyledGroupBox("Settings", theme)
# Validation examples
lineedit.show_error("Value out of range") # tooltip + red border
lineedit.show_error("") # clear error state
プロジェクト構造 / Project Structure
pyside6stylekit/
├─ pyside6stylekit/
│ ├─ utils/
│ │ ├─ __init__.py
│ │ └─ colors.py
│ ├─ widgets/
│ │ ├─ __init__.py
│ │ ├─ button.py
│ │ ├─ checkbox.py
│ │ ├─ combobox.py
│ │ ├─ groupbox.py
│ │ ├─ indus_alternate_button.py
│ │ ├─ indus_lamp.py
│ │ ├─ indus_momentary_button.py
│ │ ├─ label.py
│ │ ├─ lineedit.py
│ │ ├─ progressbar.py
│ │ ├─ radiobutton.py
│ │ ├─ slider.py
│ │ └─ textedit.py
│ ├─ __init__.py
│ ├─ presets.py
│ └─ theme.py
├─ examples/
│ ├─ demo.py
│ └─ demo_indus.py
├─ LICENSE
└─ README.md
ライセンス / License
MIT License © 2026 Mitsunori
作者 / Author
Noritama-Lab
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyside6stylekit-0.2.2.tar.gz.
File metadata
- Download URL: pyside6stylekit-0.2.2.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40c7915c2fbcdc4a42f6fd07b76b033636f9c78d69893f3ee4959e4030b04baa
|
|
| MD5 |
d8f5343d0c42aaa2b7c068372ce42a52
|
|
| BLAKE2b-256 |
df34bf1a98119ca02ce03346f1df9dadd7feee14aad81d0b06d047f143fa83e5
|
File details
Details for the file pyside6stylekit-0.2.2-py3-none-any.whl.
File metadata
- Download URL: pyside6stylekit-0.2.2-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b482fe0a8fb2ea68cbcc87918b61e0ebe880e2215b748db27b7e3999fbedad5
|
|
| MD5 |
6c931e7f868d1348ad23d7a4fe0b12a8
|
|
| BLAKE2b-256 |
a53ce9926132076b1941b25af4f580f07d5ad812619cfbb12096043878168faf
|