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.
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
QExtraTextEditgrows automatically with content (like WhatsApp/Telegram). - Emoji Replacement: Automatically converts
:smile:aliases or pasted unicode characters into high-quality images.
3. QAccordion
A flexible accordion widget for grouping content in collapsible sections.
- Customizable: Change icon position (left/right) and animation speed.
- Smooth Animation: Uses
QPropertyAnimationfor expanding/collapsing.
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.
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. | |
| QPager | A classic pagination control for navigating large datasets. | |
| QColorButton | A button that displays a selected color and opens a dialog on click. | |
| QDualList | Two lists side-by-side for moving items (Select/Deselect). | |
| QSearchLineEdit | A search input field with a clear button and search icon. | |
| 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
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39e62e819989163fef2fd407a398ec69af0a7a6e9cf7b1059e33010ddb63cb42
|
|
| MD5 |
280c8eaf10f7625ed8da44d0a4d1bd3e
|
|
| BLAKE2b-256 |
d4228e6cf0a7d187fd7c5b063073ba1891715252db9d2e5319f00e2c04015e4e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61658e379e6218eedb174b4b91ae8884ec0fc22bec39b38b84fad9c54b8ad400
|
|
| MD5 |
2fd6a9a7e9ccb2b835972dd51bf5dffd
|
|
| BLAKE2b-256 |
73913a94c761085670a4c998849722f60fa8f3e7ab9f2854b908aa394447d02c
|