Skip to main content

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_range is 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.pyexamples/demo_indus.py に基本的な使い方があります。
Basic usage is available in examples/demo.py and examples/demo_indus.py.

サポート widget / Supported widgets

  • StyledLabel
  • StyledLineEdit
  • StyledButton
  • StyledCheckBox
  • StyledRadioButton
  • StyledComboBox
  • StyledSlider
  • StyledProgressBar
  • StyledTextEdit
  • StyledGroupBox
  • IndusAlternateButton, 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

pyside6stylekit-0.2.2.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyside6stylekit-0.2.2-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

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

Hashes for pyside6stylekit-0.2.2.tar.gz
Algorithm Hash digest
SHA256 40c7915c2fbcdc4a42f6fd07b76b033636f9c78d69893f3ee4959e4030b04baa
MD5 d8f5343d0c42aaa2b7c068372ce42a52
BLAKE2b-256 df34bf1a98119ca02ce03346f1df9dadd7feee14aad81d0b06d047f143fa83e5

See more details on using hashes here.

File details

Details for the file pyside6stylekit-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pyside6stylekit-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1b482fe0a8fb2ea68cbcc87918b61e0ebe880e2215b748db27b7e3999fbedad5
MD5 6c931e7f868d1348ad23d7a4fe0b12a8
BLAKE2b-256 a53ce9926132076b1941b25af4f580f07d5ad812619cfbb12096043878168faf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page