Skip to main content

A collection of extra widgets for PySide6 including Emoji Picker, Filterable Table, and more.

Project description

QExtraWidgets

QExtraWidgets is a comprehensive library of modern, responsive, and feature-rich widgets for PySide6 applications. It aims to fill the gaps in standard Qt widgets by providing high-level components like Excel-style filterable tables, emoji pickers, accordion menus, and theme-aware icons.


📖 Documentation

The complete documentation is available at: https://gpedrosobernardes.github.io/QExtraWidgets/


📦 Installation

pip install qextrawidgets

Requirements:

  • Python 3.9+
  • PySide6 >= 6.10.1
  • twemoji-api >= 2.0.0
  • emoji-data-python == 1.6.0
  • qtawesome == 1.4.0

✨ Features & Widgets

1. QFilterableTable

A powerful QTableView extension that adds Excel-like filtering capabilities to headers.

  • Cascading Filters: Filter options update based on other columns (drill-down).
  • Sort & Search: Built-in sorting and search within the filter popup.
  • Model Agnostic: Works with QSqlTableModel, QStandardItemModel, or any custom model.

QFilterableTable


2. QEmojiPicker & QTwemojiTextEdit

A full-featured Emoji Picker and a Text Edit that renders Twemoji images inline.

  • Lazy Loading: Efficiently handles thousands of emojis.
  • Auto-Resize: The QExtraTextEdit grows automatically with content (like WhatsApp/Telegram).
  • Emoji Replacement: Automatically converts :smile: aliases or pasted unicode characters into high-quality images.

QEmojiPicker QExtraTextEdit


3. QAccordion

A flexible accordion widget for grouping content in collapsible sections.

  • Customizable: Change icon position (left/right) and animation speed.
  • Smooth Animation: Uses QPropertyAnimation for expanding/collapsing.

QAccordion


4. QThemeResponsiveIcon

Stop worrying about Dark/Light mode icons. This class wraps QtAwesome to automatically invert colors (Black <-> White) based on the current system or application palette.

from qextrawidgets.icons import QThemeResponsiveIcon
from PySide6.QtWidgets import QPushButton

btn = QPushButton("Theme Aware Button")
# Automatically switches color when QPalette changes
btn.setIcon(QThemeResponsiveIcon.fromAwesome("fa6s.house"))

5. QStandardTwemojiDelegate

A delegate that renders Twemoji images within standard item views (like QListView, QTableView, QTreeView).

  • Unicode Support: Renders standard Unicode emojis as high-quality Twemoji images.
  • Alignment: Supports standard Qt text alignment flags.
  • Mixed Content: Handles text mixed with emojis seamlessly.

QStandardTwemojiDelegate

from PySide6.QtWidgets import QListView
from qextrawidgets.delegates.standard_twemoji_delegate import QStandardTwemojiDelegate

view = QListView()
delegate = QStandardTwemojiDelegate(view)
view.setItemDelegate(delegate)

6. Other Useful Widgets

Widget Description Image
QPasswordLineEdit A line edit with a built-in eye icon to toggle password visibility. QPasswordLineEdit
QPager A classic pagination control for navigating large datasets. QPager
QColorButton A button that displays a selected color and opens a dialog on click. QColorButton
QDualList Two lists side-by-side for moving items (Select/Deselect). QDualList
QSearchLineEdit A search input field with a clear button and search icon. QSearchLineEdit
QIconComboBox A ToolButton-style combo box optimized for icons or short text.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

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

qextrawidgets-0.1.2.tar.gz (3.4 MB view details)

Uploaded Source

Built Distribution

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

qextrawidgets-0.1.2-py3-none-any.whl (3.4 MB view details)

Uploaded Python 3

File details

Details for the file qextrawidgets-0.1.2.tar.gz.

File metadata

  • Download URL: qextrawidgets-0.1.2.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for qextrawidgets-0.1.2.tar.gz
Algorithm Hash digest
SHA256 39e62e819989163fef2fd407a398ec69af0a7a6e9cf7b1059e33010ddb63cb42
MD5 280c8eaf10f7625ed8da44d0a4d1bd3e
BLAKE2b-256 d4228e6cf0a7d187fd7c5b063073ba1891715252db9d2e5319f00e2c04015e4e

See more details on using hashes here.

File details

Details for the file qextrawidgets-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: qextrawidgets-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for qextrawidgets-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 61658e379e6218eedb174b4b91ae8884ec0fc22bec39b38b84fad9c54b8ad400
MD5 2fd6a9a7e9ccb2b835972dd51bf5dffd
BLAKE2b-256 73913a94c761085670a4c998849722f60fa8f3e7ab9f2854b908aa394447d02c

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