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.3.tar.gz (12.3 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.3-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file pyside6stylekit-0.2.3.tar.gz.

File metadata

  • Download URL: pyside6stylekit-0.2.3.tar.gz
  • Upload date:
  • Size: 12.3 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.3.tar.gz
Algorithm Hash digest
SHA256 df5edff4c90b9f8db3b9f218fdc7043b75db4a262f692e66fa59e446663fe628
MD5 72ed63adb92c72d5a536e52789c02c11
BLAKE2b-256 999996fc5919aa109271432c2ed9db344cba70e600f16136ccaab83bf31aea57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyside6stylekit-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4d3abead72c63c3f0abf217f2d362e32475fe8c4caed0ad98018223b7183c066
MD5 75cd21b078666fae68c1de02d5029d53
BLAKE2b-256 992b92e85d937b7a511789bccc1bdb3b038467c801b631d2682895425a4679cb

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