ezqt-widgets 2.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ezqt_widgets-2.3.4/LICENSE +24 -0
- ezqt_widgets-2.3.4/MANIFEST.in +40 -0
- ezqt_widgets-2.3.4/PKG-INFO +279 -0
- ezqt_widgets-2.3.4/README.md +216 -0
- ezqt_widgets-2.3.4/docs/api/button.md +28 -0
- ezqt_widgets-2.3.4/docs/api/index.md +202 -0
- ezqt_widgets-2.3.4/docs/api/input.md +28 -0
- ezqt_widgets-2.3.4/docs/api/label.md +28 -0
- ezqt_widgets-2.3.4/docs/api/misc.md +40 -0
- ezqt_widgets-2.3.4/docs/cli/index.md +172 -0
- ezqt_widgets-2.3.4/docs/examples/index.md +260 -0
- ezqt_widgets-2.3.4/docs/getting-started.md +477 -0
- ezqt_widgets-2.3.4/docs/guides/development.md +240 -0
- ezqt_widgets-2.3.4/docs/guides/index.md +182 -0
- ezqt_widgets-2.3.4/docs/guides/style-guide.md +291 -0
- ezqt_widgets-2.3.4/docs/guides/testing.md +380 -0
- ezqt_widgets-2.3.4/docs/index.md +148 -0
- ezqt_widgets-2.3.4/examples/SUMMARY.md +155 -0
- ezqt_widgets-2.3.4/examples/bin/app.yaml +59 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-3d.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-4k.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-account-logout.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-action-redo.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-action-undo.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-airplane-mode-off.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-airplane-mode.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-alarm.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-align-center.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-align-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-align-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-bottom-2.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-bottom.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-circle-bottom.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-circle-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-circle-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-circle-top.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-arrow-top.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-at.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-av-timer.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-ban.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-battery-0.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-battery-3.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-battery-5.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-battery-alert.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-battery-slash.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-bell.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-bluetooth.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-briefcase.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-browser.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-calendar-check.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-camera-roll.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-camera.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-caret-bottom.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-caret-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-caret-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-caret-top.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cart.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cast.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chart-line.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chart-pie.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chart.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chat-bubble.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-check-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-check-circle.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-check.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-bottom.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-circle-down-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-circle-left-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-circle-right-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-circle-up-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-double-down.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-double-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-double-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-double-up-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-double-up.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-chevron-top.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-circle.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-clipboard.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-clock.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-clone.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-closed-captioning.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cloud-download.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cloud-upload.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cloudy.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-code.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-coffee.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-comment-bubble.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-comment-square.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-credit-card.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cursor-move.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cursor.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-cut.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-data-transfer-down.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-data-transfer-up.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-deaf.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-description.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-devices.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-dialpad.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-dog.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-door.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-double-quote-sans-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-double-quote-sans-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-drop.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-envelope-closed.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-envelope-letter.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-envelope-open.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-equalizer.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-ethernet.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-exit-to-app.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-expand-down.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-expand-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-expand-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-expand-up.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-exposure.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-external-link.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-face-dead.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-featured-playlist.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-file.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-find-in-page.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-fingerprint.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-fire.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-flip-to-back.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-folder-open.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-folder.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-frown.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-gamepad.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-hand-point-down.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-hand-point-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-hand-point-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-hand-point-up.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-hd.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-hdr.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-headphones.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-heart.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-highligt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-history.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-home.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-house.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-image-plus.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-image1.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-infinity.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-input-power.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-input.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-justify-center.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-justify-left.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-justify-right.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-keyboard.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-laptop.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-layers.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-level-down.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-level-up.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-library-add.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-library.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-lightbulb.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-link-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-link-broken.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-link.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-location-pin.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-lock-locked.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-lock-unlocked.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-loop-1.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-loop-circular.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-loop.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-low-vision.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-magnifying-glass.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-map.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-eject.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-pause.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-play.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-skip-backward.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-skip-forward.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-step-backward.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-step-forward.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-media-stop.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-medical-cross.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-meh.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-menu.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-microphone.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-minus.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mobile-landscape.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mobile.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mood-bad.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mood-good.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mood-very-bad.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mood-very-good.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-moon.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mouse.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-move.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-movie.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mug-tea.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-mug.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-notes.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-options-horizontal.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-options.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-paint-bucket.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-paper-plane.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-paperclip.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-paragraph.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-pen-alt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-pencil.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-people.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-phone.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-pin.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-plus.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-power-standby.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-print.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-rectangle.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-reload.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-remove.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-rss.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-satelite.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-save.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-screen-desktop.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-screen-smartphone.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-settings.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-share-boxed.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-share.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-signal-cellular-0.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-signal-cellular-3.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-size-grip.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-smile.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-speaker.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-speech.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-speedometer.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-star.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-tags.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-task.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-terminal.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-text-size.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-text-square.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-text.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-thumb-down.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-thumb-up.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-transfer.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-trash.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-triangle.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-truck.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-user-female.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-user-follow.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-user-unfollow.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-user.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-vertical-align-bottom.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-view-column.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-view-module.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-view-quilt.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-view-stream.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-voice-over-record.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-volume-high.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-volume-low.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-volume-off.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wallet.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-watch.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wifi-signal-0.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wifi-signal-1.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wifi-signal-2.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wifi-signal-4.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wifi-signal-off.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-window-maximize.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-window-minimize.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-window-restore.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-wrap-text.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-x-circle.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-x.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-zoom-in.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/cil-zoom-out.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_add_user.svg +61 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_attachment.svg +78 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_busy.svg +60 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_close.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_close.svg +61 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_emoticons.svg +78 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_idle.svg +60 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_invisible.svg +61 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_maximize.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_maximize.svg +61 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_menu.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_minimize.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_minimize.svg +61 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_more_options.svg +78 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_online.svg +60 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_restore.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_restore.svg +60 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_search.svg +60 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_send.svg +78 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_settings.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_settings.svg +78 -0
- ezqt_widgets-2.3.4/examples/bin/icons/icon_signal.svg +78 -0
- ezqt_widgets-2.3.4/examples/bin/icons/material-circled-C.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/material-circled-K.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/material-copy-24.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/material-electricity.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/material-play-blue.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/material-stop-red.png +0 -0
- ezqt_widgets-2.3.4/examples/bin/icons/triangle_down.svg +3 -0
- ezqt_widgets-2.3.4/examples/bin/icons/triangle_up.svg +3 -0
- ezqt_widgets-2.3.4/examples/bin/main_theme.qss +937 -0
- ezqt_widgets-2.3.4/examples/button_example.py +400 -0
- ezqt_widgets-2.3.4/examples/input_example.py +411 -0
- ezqt_widgets-2.3.4/examples/label_example.py +521 -0
- ezqt_widgets-2.3.4/examples/misc_example.py +643 -0
- ezqt_widgets-2.3.4/examples/run_all_examples.py +471 -0
- ezqt_widgets-2.3.4/ezqt_widgets/__init__.py +151 -0
- ezqt_widgets-2.3.4/ezqt_widgets/button/__init__.py +32 -0
- ezqt_widgets-2.3.4/ezqt_widgets/button/date_button.py +547 -0
- ezqt_widgets-2.3.4/ezqt_widgets/button/icon_button.py +477 -0
- ezqt_widgets-2.3.4/ezqt_widgets/button/loader_button.py +753 -0
- ezqt_widgets-2.3.4/ezqt_widgets/cli/__init__.py +18 -0
- ezqt_widgets-2.3.4/ezqt_widgets/cli/main.py +277 -0
- ezqt_widgets-2.3.4/ezqt_widgets/cli/runner.py +266 -0
- ezqt_widgets-2.3.4/ezqt_widgets/input/__init__.py +32 -0
- ezqt_widgets-2.3.4/ezqt_widgets/input/auto_complete_input.py +227 -0
- ezqt_widgets-2.3.4/ezqt_widgets/input/password_input.py +620 -0
- ezqt_widgets-2.3.4/ezqt_widgets/input/search_input.py +313 -0
- ezqt_widgets-2.3.4/ezqt_widgets/input/tab_replace_textedit.py +242 -0
- ezqt_widgets-2.3.4/ezqt_widgets/label/__init__.py +33 -0
- ezqt_widgets-2.3.4/ezqt_widgets/label/clickable_tag_label.py +328 -0
- ezqt_widgets-2.3.4/ezqt_widgets/label/framed_label.py +220 -0
- ezqt_widgets-2.3.4/ezqt_widgets/label/hover_label.py +516 -0
- ezqt_widgets-2.3.4/ezqt_widgets/label/indicator_label.py +225 -0
- ezqt_widgets-2.3.4/ezqt_widgets/misc/__init__.py +37 -0
- ezqt_widgets-2.3.4/ezqt_widgets/misc/circular_timer.py +427 -0
- ezqt_widgets-2.3.4/ezqt_widgets/misc/draggable_list.py +905 -0
- ezqt_widgets-2.3.4/ezqt_widgets/misc/option_selector.py +487 -0
- ezqt_widgets-2.3.4/ezqt_widgets/misc/toggle_icon.py +534 -0
- ezqt_widgets-2.3.4/ezqt_widgets/misc/toggle_switch.py +343 -0
- ezqt_widgets-2.3.4/ezqt_widgets.egg-info/PKG-INFO +279 -0
- ezqt_widgets-2.3.4/ezqt_widgets.egg-info/SOURCES.txt +357 -0
- ezqt_widgets-2.3.4/ezqt_widgets.egg-info/dependency_links.txt +1 -0
- ezqt_widgets-2.3.4/ezqt_widgets.egg-info/requires.txt +36 -0
- ezqt_widgets-2.3.4/ezqt_widgets.egg-info/top_level.txt +1 -0
- ezqt_widgets-2.3.4/pyproject.toml +444 -0
- ezqt_widgets-2.3.4/setup.cfg +4 -0
- ezqt_widgets-2.3.4/tests/conftest.py +177 -0
- ezqt_widgets-2.3.4/tests/run_tests.py +119 -0
- ezqt_widgets-2.3.4/tests/unit/__init__.py +12 -0
- ezqt_widgets-2.3.4/tests/unit/test_button/__init__.py +13 -0
- ezqt_widgets-2.3.4/tests/unit/test_button/test_date_button.py +346 -0
- ezqt_widgets-2.3.4/tests/unit/test_button/test_icon_button.py +324 -0
- ezqt_widgets-2.3.4/tests/unit/test_button/test_loader_button.py +438 -0
- ezqt_widgets-2.3.4/tests/unit/test_input/__init__.py +13 -0
- ezqt_widgets-2.3.4/tests/unit/test_input/test_auto_complete_input.py +290 -0
- ezqt_widgets-2.3.4/tests/unit/test_input/test_password_input.py +496 -0
- ezqt_widgets-2.3.4/tests/unit/test_input/test_search_input.py +353 -0
- ezqt_widgets-2.3.4/tests/unit/test_input/test_tab_replace_textedit.py +392 -0
- ezqt_widgets-2.3.4/tests/unit/test_label/__init__.py +13 -0
- ezqt_widgets-2.3.4/tests/unit/test_label/test_clickable_tag_label.py +398 -0
- ezqt_widgets-2.3.4/tests/unit/test_label/test_framed_label.py +259 -0
- ezqt_widgets-2.3.4/tests/unit/test_label/test_hover_label.py +401 -0
- ezqt_widgets-2.3.4/tests/unit/test_label/test_indicator_label.py +309 -0
- ezqt_widgets-2.3.4/tests/unit/test_misc/__init__.py +13 -0
- ezqt_widgets-2.3.4/tests/unit/test_misc/test_circular_timer.py +186 -0
- ezqt_widgets-2.3.4/tests/unit/test_misc/test_draggable_list.py +555 -0
- ezqt_widgets-2.3.4/tests/unit/test_misc/test_option_selector.py +178 -0
- ezqt_widgets-2.3.4/tests/unit/test_misc/test_toggle_icon.py +175 -0
- ezqt_widgets-2.3.4/tests/unit/test_misc/test_toggle_switch.py +148 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Neuraaak
|
|
4
|
+
|
|
5
|
+
This project is made to be used with EzQt-App:
|
|
6
|
+
https://pypi.org/project/EzQt-App/
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in all
|
|
16
|
+
copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
21
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
24
|
+
SOFTWARE.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Documentation principale
|
|
2
|
+
include README.md
|
|
3
|
+
include CHANGELOG.md
|
|
4
|
+
include LICENSE
|
|
5
|
+
include MANIFEST.in
|
|
6
|
+
|
|
7
|
+
# Documentation dans docs/
|
|
8
|
+
recursive-include docs *.md
|
|
9
|
+
|
|
10
|
+
# Fichiers d'exemples - inclure tout le dossier examples
|
|
11
|
+
recursive-include examples *
|
|
12
|
+
|
|
13
|
+
# Fichiers de test
|
|
14
|
+
include tests/run_tests.py
|
|
15
|
+
include tests/conftest.py
|
|
16
|
+
recursive-include tests/unit *
|
|
17
|
+
|
|
18
|
+
# Fichiers CLI
|
|
19
|
+
include ezqt_widgets/cli/__init__.py
|
|
20
|
+
include ezqt_widgets/cli/main.py
|
|
21
|
+
include ezqt_widgets/cli/runner.py
|
|
22
|
+
|
|
23
|
+
# Exclure les fichiers inutiles
|
|
24
|
+
exclude build_upload.bat
|
|
25
|
+
exclude .coverage
|
|
26
|
+
exclude coverage.xml
|
|
27
|
+
exclude htmlcov/
|
|
28
|
+
exclude .pytest_cache/
|
|
29
|
+
exclude .benchmarks/
|
|
30
|
+
exclude _temp/
|
|
31
|
+
exclude *.tmp
|
|
32
|
+
exclude *.temp
|
|
33
|
+
prune build
|
|
34
|
+
prune dist
|
|
35
|
+
prune EzQt_Widgets.egg-info
|
|
36
|
+
prune __pycache__
|
|
37
|
+
prune .venv
|
|
38
|
+
prune .vscode
|
|
39
|
+
prune .idea
|
|
40
|
+
prune .git
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ezqt-widgets
|
|
3
|
+
Version: 2.3.4
|
|
4
|
+
Summary: Une collection de widgets Qt personnalisés et réutilisables pour PySide6. Fournit des composants graphiques avancés, réutilisables et stylés pour faciliter le développement d'interfaces modernes et ergonomiques.
|
|
5
|
+
Author: Neuraaak
|
|
6
|
+
Maintainer: Neuraaak
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/neuraaak/ezqt_widgets
|
|
9
|
+
Project-URL: Documentation, https://neuraaak.github.io/ezqt-widgets/
|
|
10
|
+
Project-URL: Repository, https://github.com/neuraaak/ezqt_widgets
|
|
11
|
+
Project-URL: PyPI, https://pypi.org/project/ezqt-widgets/
|
|
12
|
+
Keywords: qt,pyside6,widgets,gui,interface,components,ui,desktop
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
21
|
+
Classifier: Intended Audience :: Developers
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
24
|
+
Classifier: Topic :: Desktop Environment
|
|
25
|
+
Classifier: Topic :: Software Development :: Widget Sets
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Requires-Dist: PySide6<7.0.0,>=6.7.3
|
|
30
|
+
Requires-Dist: requests>=2.32.4
|
|
31
|
+
Requires-Dist: click>=8.2.1
|
|
32
|
+
Requires-Dist: PyYAML>=6.0
|
|
33
|
+
Requires-Dist: typing_extensions>=4.0.0
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
36
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
37
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: ty>=0.0.13; extra == "dev"
|
|
39
|
+
Requires-Dist: pyright>=1.1.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: bandit>=1.7.0; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
43
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
44
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
|
|
45
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == "dev"
|
|
46
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
47
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
48
|
+
Requires-Dist: mkdocs>=1.6.0; extra == "dev"
|
|
49
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "dev"
|
|
50
|
+
Requires-Dist: mkdocstrings[python]>=0.27.0; extra == "dev"
|
|
51
|
+
Requires-Dist: mkdocs-section-index>=0.3.0; extra == "dev"
|
|
52
|
+
Provides-Extra: test
|
|
53
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
54
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
55
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
|
|
56
|
+
Requires-Dist: pytest-xdist>=3.0.0; extra == "test"
|
|
57
|
+
Provides-Extra: docs
|
|
58
|
+
Requires-Dist: mkdocs>=1.6.0; extra == "docs"
|
|
59
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
|
|
60
|
+
Requires-Dist: mkdocstrings[python]>=0.27.0; extra == "docs"
|
|
61
|
+
Requires-Dist: mkdocs-section-index>=0.3.0; extra == "docs"
|
|
62
|
+
Dynamic: license-file
|
|
63
|
+
|
|
64
|
+
# 🎨 EzQt Widgets
|
|
65
|
+
|
|
66
|
+
[](https://www.python.org/)
|
|
67
|
+
[](https://pypi.org/project/ezqt-widgets/)
|
|
68
|
+
[](https://pypi.org/project/ezqt-widgets/)
|
|
69
|
+
[](https://pypi.org/project/ezqt-widgets/)
|
|
70
|
+
[](https://neuraaak.github.io/ezqt-widgets/)
|
|
71
|
+
[](LICENSE)
|
|
72
|
+
[](https://github.com/neuraaak/ezqt_widgets)
|
|
73
|
+
[](https://github.com/neuraaak/ezqt_widgets)
|
|
74
|
+
[](https://github.com/neuraaak/ezqt_widgets)
|
|
75
|
+
|
|
76
|
+

|
|
77
|
+
|
|
78
|
+
**EzQt Widgets** is a modern collection of custom and reusable Qt widgets for **PySide6** featuring advanced animated components, full type hints, and a simple API suitable for professional desktop applications.
|
|
79
|
+
|
|
80
|
+
## 📦 Installation
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install ezqt-widgets
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Or from source:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone https://github.com/neuraaak/ezqt_widgets.git
|
|
90
|
+
cd ezqt_widgets && pip install .
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## 🚀 Quick Start
|
|
94
|
+
|
|
95
|
+
```python
|
|
96
|
+
from ezqt_widgets import DateButton, IconButton, ToggleSwitch, AutoCompleteInput
|
|
97
|
+
from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
|
|
98
|
+
|
|
99
|
+
app = QApplication([])
|
|
100
|
+
window = QWidget()
|
|
101
|
+
layout = QVBoxLayout()
|
|
102
|
+
|
|
103
|
+
# Create widgets
|
|
104
|
+
date_button = DateButton(placeholder="Select a date")
|
|
105
|
+
icon_button = IconButton(icon="path/to/icon.png", text="Click me")
|
|
106
|
+
toggle = ToggleSwitch(checked=True)
|
|
107
|
+
auto_input = AutoCompleteInput(completions=["Option 1", "Option 2", "Option 3"])
|
|
108
|
+
|
|
109
|
+
# Connect signals
|
|
110
|
+
date_button.dateChanged.connect(lambda date: print(f"Date: {date}"))
|
|
111
|
+
icon_button.clicked.connect(lambda: print("Button clicked"))
|
|
112
|
+
toggle.toggled.connect(lambda checked: print(f"Toggle: {checked}"))
|
|
113
|
+
|
|
114
|
+
# Add to layout
|
|
115
|
+
layout.addWidget(date_button)
|
|
116
|
+
layout.addWidget(icon_button)
|
|
117
|
+
layout.addWidget(toggle)
|
|
118
|
+
layout.addWidget(auto_input)
|
|
119
|
+
|
|
120
|
+
window.setLayout(layout)
|
|
121
|
+
window.show()
|
|
122
|
+
app.exec()
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 🎯 Key Features
|
|
126
|
+
|
|
127
|
+
- **✅ PySide6 Compatible**: All widgets based on PySide6
|
|
128
|
+
- **✅ Full Type Hints**: Complete typing support for IDEs and linters
|
|
129
|
+
- **✅ Qt Signals**: Native integration with Qt signal system
|
|
130
|
+
- **✅ QSS Styling**: Complete Qt stylesheet support
|
|
131
|
+
- **✅ Smooth Animations**: Configurable animations with easing curves
|
|
132
|
+
- **✅ Accessibility**: Accessibility features support
|
|
133
|
+
- **✅ Comprehensive Tests**: Complete test suite (~211 tests, ~80% coverage)
|
|
134
|
+
- **✅ CLI Tools**: Command-line interface for examples and testing
|
|
135
|
+
|
|
136
|
+
## 📚 Documentation
|
|
137
|
+
|
|
138
|
+
Full documentation is available online: **[neuraaak.github.io/ezqt-widgets](https://neuraaak.github.io/ezqt-widgets/)**
|
|
139
|
+
|
|
140
|
+
- **[📖 Getting Started](https://neuraaak.github.io/ezqt_widgets/getting-started/)** – Installation and first steps
|
|
141
|
+
- **[🎯 API Reference](https://neuraaak.github.io/ezqt_widgets/api/)** – Complete widget reference (auto-generated)
|
|
142
|
+
- **[🎨 QSS Style Guide](https://neuraaak.github.io/ezqt_widgets/guides/style-guide/)** – QSS customization and best practices
|
|
143
|
+
- **[💡 Examples](https://neuraaak.github.io/ezqt_widgets/examples/)** – Usage examples and demonstrations
|
|
144
|
+
- **[🖥️ CLI](https://neuraaak.github.io/ezqt_widgets/cli/)** – Command-line interface guide
|
|
145
|
+
- **[🧪 Testing](https://neuraaak.github.io/ezqt_widgets/guides/testing/)** – Test suite documentation
|
|
146
|
+
- **[🔧 Development](https://neuraaak.github.io/ezqt_widgets/guides/development/)** – Environment setup and contribution
|
|
147
|
+
|
|
148
|
+
## 🧪 Testing
|
|
149
|
+
|
|
150
|
+
Comprehensive test suite with 211+ test cases covering all widgets.
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Install dev dependencies
|
|
154
|
+
pip install -e ".[dev]"
|
|
155
|
+
|
|
156
|
+
# Run all tests
|
|
157
|
+
pytest tests/
|
|
158
|
+
|
|
159
|
+
# Run specific test types
|
|
160
|
+
python tests/run_tests.py --type unit
|
|
161
|
+
|
|
162
|
+
# With coverage
|
|
163
|
+
python tests/run_tests.py --coverage
|
|
164
|
+
|
|
165
|
+
# Using CLI
|
|
166
|
+
ezqt test --unit
|
|
167
|
+
ezqt test --coverage
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
See the **[Testing Guide](https://neuraaak.github.io/ezqt_widgets/guides/testing/)** for complete details.
|
|
171
|
+
|
|
172
|
+
## 🛠️ Development Setup
|
|
173
|
+
|
|
174
|
+
For contributors and developers:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Clone and install in development mode
|
|
178
|
+
git clone https://github.com/neuraaak/ezqt_widgets.git
|
|
179
|
+
cd ezqt_widgets
|
|
180
|
+
pip install -e ".[dev]"
|
|
181
|
+
|
|
182
|
+
# Install pre-commit hooks
|
|
183
|
+
pip install pre-commit
|
|
184
|
+
pre-commit install
|
|
185
|
+
|
|
186
|
+
# Verify CLI installation
|
|
187
|
+
ezqt --version
|
|
188
|
+
ezqt info
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
See the **[Development Guide](https://neuraaak.github.io/ezqt_widgets/guides/development/)** for detailed setup instructions.
|
|
192
|
+
|
|
193
|
+
## 🎨 Available Widgets
|
|
194
|
+
|
|
195
|
+
### 🎛️ Button Widgets (3)
|
|
196
|
+
|
|
197
|
+
| Widget | Description |
|
|
198
|
+
| ---------------- | ------------------------------------------- |
|
|
199
|
+
| **DateButton** | Date picker button with integrated calendar |
|
|
200
|
+
| **IconButton** | Button with icon support and optional text |
|
|
201
|
+
| **LoaderButton** | Button with integrated loading animation |
|
|
202
|
+
|
|
203
|
+
### ⌨️ Input Widgets (3)
|
|
204
|
+
|
|
205
|
+
| Widget | Description |
|
|
206
|
+
| ---------------------- | ------------------------------------ |
|
|
207
|
+
| **AutoCompleteInput** | Text field with autocompletion |
|
|
208
|
+
| **SearchInput** | Search field with history management |
|
|
209
|
+
| **TabReplaceTextEdit** | Text editor with tab replacement |
|
|
210
|
+
|
|
211
|
+
### 🏷️ Label Widgets (4)
|
|
212
|
+
|
|
213
|
+
| Widget | Description |
|
|
214
|
+
| --------------------- | --------------------------------- |
|
|
215
|
+
| **ClickableTagLabel** | Clickable tag with toggle state |
|
|
216
|
+
| **FramedLabel** | Framed label for advanced styling |
|
|
217
|
+
| **HoverLabel** | Label with hover icon display |
|
|
218
|
+
| **IndicatorLabel** | Status indicator with colored LED |
|
|
219
|
+
|
|
220
|
+
### 🔧 Miscellaneous Widgets (6)
|
|
221
|
+
|
|
222
|
+
| Widget | Description |
|
|
223
|
+
| ------------------ | ----------------------------------------- |
|
|
224
|
+
| **CircularTimer** | Animated circular timer |
|
|
225
|
+
| **DraggableItem** | Draggable list item component |
|
|
226
|
+
| **DraggableList** | List with draggable and reorderable items |
|
|
227
|
+
| **OptionSelector** | Option selector with animated selector |
|
|
228
|
+
| **ToggleIcon** | Toggleable icon (open/closed states) |
|
|
229
|
+
| **ToggleSwitch** | Modern toggle switch with animation |
|
|
230
|
+
|
|
231
|
+
## 📦 Dependencies
|
|
232
|
+
|
|
233
|
+
- **PySide6>=6.0.0** – Qt for Python framework
|
|
234
|
+
- **typing_extensions>=4.0.0** – Extended typing support
|
|
235
|
+
|
|
236
|
+
## 🔧 Quick API Reference
|
|
237
|
+
|
|
238
|
+
```python
|
|
239
|
+
from ezqt_widgets import (
|
|
240
|
+
# Button widgets
|
|
241
|
+
DateButton, IconButton, LoaderButton,
|
|
242
|
+
# Input widgets
|
|
243
|
+
AutoCompleteInput, SearchInput, TabReplaceTextEdit,
|
|
244
|
+
# Label widgets
|
|
245
|
+
ClickableTagLabel, FramedLabel, HoverLabel, IndicatorLabel,
|
|
246
|
+
# Misc widgets
|
|
247
|
+
CircularTimer, DraggableList, OptionSelector, ToggleIcon, ToggleSwitch,
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
# Button examples
|
|
251
|
+
date_btn = DateButton(placeholder="Select date")
|
|
252
|
+
icon_btn = IconButton(icon="path/to/icon.png", text="Click")
|
|
253
|
+
loader_btn = LoaderButton(loading_text="Loading...")
|
|
254
|
+
|
|
255
|
+
# Input examples
|
|
256
|
+
auto_input = AutoCompleteInput(completions=["A", "B", "C"])
|
|
257
|
+
search_input = SearchInput(max_history=20)
|
|
258
|
+
|
|
259
|
+
# Misc examples
|
|
260
|
+
timer = CircularTimer(duration=5000, loop=True)
|
|
261
|
+
switch = ToggleSwitch(checked=True)
|
|
262
|
+
selector = OptionSelector(options=["Small", "Medium", "Large"])
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## 📄 License
|
|
266
|
+
|
|
267
|
+
MIT License – See [LICENSE](LICENSE) file for details.
|
|
268
|
+
|
|
269
|
+
## 🔗 Links
|
|
270
|
+
|
|
271
|
+
- **Repository**: [https://github.com/neuraaak/ezqt_widgets](https://github.com/neuraaak/ezqt_widgets)
|
|
272
|
+
- **Issues**: [GitHub Issues](https://github.com/neuraaak/ezqt_widgets/issues)
|
|
273
|
+
- **Documentation**: [neuraaak.github.io/ezqt_widgets](https://neuraaak.github.io/ezqt-widgets/)
|
|
274
|
+
- **PyPI**: [pypi.org/project/ezqt-widgets](https://pypi.org/project/ezqt-widgets/)
|
|
275
|
+
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
**EzQt Widgets** – Modern, typed, and beautiful Qt widgets for Python. 🎨
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# 🎨 EzQt Widgets
|
|
2
|
+
|
|
3
|
+
[](https://www.python.org/)
|
|
4
|
+
[](https://pypi.org/project/ezqt-widgets/)
|
|
5
|
+
[](https://pypi.org/project/ezqt-widgets/)
|
|
6
|
+
[](https://pypi.org/project/ezqt-widgets/)
|
|
7
|
+
[](https://neuraaak.github.io/ezqt-widgets/)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://github.com/neuraaak/ezqt_widgets)
|
|
10
|
+
[](https://github.com/neuraaak/ezqt_widgets)
|
|
11
|
+
[](https://github.com/neuraaak/ezqt_widgets)
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
**EzQt Widgets** is a modern collection of custom and reusable Qt widgets for **PySide6** featuring advanced animated components, full type hints, and a simple API suitable for professional desktop applications.
|
|
16
|
+
|
|
17
|
+
## 📦 Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install ezqt-widgets
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Or from source:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
git clone https://github.com/neuraaak/ezqt_widgets.git
|
|
27
|
+
cd ezqt_widgets && pip install .
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 🚀 Quick Start
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from ezqt_widgets import DateButton, IconButton, ToggleSwitch, AutoCompleteInput
|
|
34
|
+
from PySide6.QtWidgets import QApplication, QVBoxLayout, QWidget
|
|
35
|
+
|
|
36
|
+
app = QApplication([])
|
|
37
|
+
window = QWidget()
|
|
38
|
+
layout = QVBoxLayout()
|
|
39
|
+
|
|
40
|
+
# Create widgets
|
|
41
|
+
date_button = DateButton(placeholder="Select a date")
|
|
42
|
+
icon_button = IconButton(icon="path/to/icon.png", text="Click me")
|
|
43
|
+
toggle = ToggleSwitch(checked=True)
|
|
44
|
+
auto_input = AutoCompleteInput(completions=["Option 1", "Option 2", "Option 3"])
|
|
45
|
+
|
|
46
|
+
# Connect signals
|
|
47
|
+
date_button.dateChanged.connect(lambda date: print(f"Date: {date}"))
|
|
48
|
+
icon_button.clicked.connect(lambda: print("Button clicked"))
|
|
49
|
+
toggle.toggled.connect(lambda checked: print(f"Toggle: {checked}"))
|
|
50
|
+
|
|
51
|
+
# Add to layout
|
|
52
|
+
layout.addWidget(date_button)
|
|
53
|
+
layout.addWidget(icon_button)
|
|
54
|
+
layout.addWidget(toggle)
|
|
55
|
+
layout.addWidget(auto_input)
|
|
56
|
+
|
|
57
|
+
window.setLayout(layout)
|
|
58
|
+
window.show()
|
|
59
|
+
app.exec()
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 🎯 Key Features
|
|
63
|
+
|
|
64
|
+
- **✅ PySide6 Compatible**: All widgets based on PySide6
|
|
65
|
+
- **✅ Full Type Hints**: Complete typing support for IDEs and linters
|
|
66
|
+
- **✅ Qt Signals**: Native integration with Qt signal system
|
|
67
|
+
- **✅ QSS Styling**: Complete Qt stylesheet support
|
|
68
|
+
- **✅ Smooth Animations**: Configurable animations with easing curves
|
|
69
|
+
- **✅ Accessibility**: Accessibility features support
|
|
70
|
+
- **✅ Comprehensive Tests**: Complete test suite (~211 tests, ~80% coverage)
|
|
71
|
+
- **✅ CLI Tools**: Command-line interface for examples and testing
|
|
72
|
+
|
|
73
|
+
## 📚 Documentation
|
|
74
|
+
|
|
75
|
+
Full documentation is available online: **[neuraaak.github.io/ezqt-widgets](https://neuraaak.github.io/ezqt-widgets/)**
|
|
76
|
+
|
|
77
|
+
- **[📖 Getting Started](https://neuraaak.github.io/ezqt_widgets/getting-started/)** – Installation and first steps
|
|
78
|
+
- **[🎯 API Reference](https://neuraaak.github.io/ezqt_widgets/api/)** – Complete widget reference (auto-generated)
|
|
79
|
+
- **[🎨 QSS Style Guide](https://neuraaak.github.io/ezqt_widgets/guides/style-guide/)** – QSS customization and best practices
|
|
80
|
+
- **[💡 Examples](https://neuraaak.github.io/ezqt_widgets/examples/)** – Usage examples and demonstrations
|
|
81
|
+
- **[🖥️ CLI](https://neuraaak.github.io/ezqt_widgets/cli/)** – Command-line interface guide
|
|
82
|
+
- **[🧪 Testing](https://neuraaak.github.io/ezqt_widgets/guides/testing/)** – Test suite documentation
|
|
83
|
+
- **[🔧 Development](https://neuraaak.github.io/ezqt_widgets/guides/development/)** – Environment setup and contribution
|
|
84
|
+
|
|
85
|
+
## 🧪 Testing
|
|
86
|
+
|
|
87
|
+
Comprehensive test suite with 211+ test cases covering all widgets.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Install dev dependencies
|
|
91
|
+
pip install -e ".[dev]"
|
|
92
|
+
|
|
93
|
+
# Run all tests
|
|
94
|
+
pytest tests/
|
|
95
|
+
|
|
96
|
+
# Run specific test types
|
|
97
|
+
python tests/run_tests.py --type unit
|
|
98
|
+
|
|
99
|
+
# With coverage
|
|
100
|
+
python tests/run_tests.py --coverage
|
|
101
|
+
|
|
102
|
+
# Using CLI
|
|
103
|
+
ezqt test --unit
|
|
104
|
+
ezqt test --coverage
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
See the **[Testing Guide](https://neuraaak.github.io/ezqt_widgets/guides/testing/)** for complete details.
|
|
108
|
+
|
|
109
|
+
## 🛠️ Development Setup
|
|
110
|
+
|
|
111
|
+
For contributors and developers:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Clone and install in development mode
|
|
115
|
+
git clone https://github.com/neuraaak/ezqt_widgets.git
|
|
116
|
+
cd ezqt_widgets
|
|
117
|
+
pip install -e ".[dev]"
|
|
118
|
+
|
|
119
|
+
# Install pre-commit hooks
|
|
120
|
+
pip install pre-commit
|
|
121
|
+
pre-commit install
|
|
122
|
+
|
|
123
|
+
# Verify CLI installation
|
|
124
|
+
ezqt --version
|
|
125
|
+
ezqt info
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
See the **[Development Guide](https://neuraaak.github.io/ezqt_widgets/guides/development/)** for detailed setup instructions.
|
|
129
|
+
|
|
130
|
+
## 🎨 Available Widgets
|
|
131
|
+
|
|
132
|
+
### 🎛️ Button Widgets (3)
|
|
133
|
+
|
|
134
|
+
| Widget | Description |
|
|
135
|
+
| ---------------- | ------------------------------------------- |
|
|
136
|
+
| **DateButton** | Date picker button with integrated calendar |
|
|
137
|
+
| **IconButton** | Button with icon support and optional text |
|
|
138
|
+
| **LoaderButton** | Button with integrated loading animation |
|
|
139
|
+
|
|
140
|
+
### ⌨️ Input Widgets (3)
|
|
141
|
+
|
|
142
|
+
| Widget | Description |
|
|
143
|
+
| ---------------------- | ------------------------------------ |
|
|
144
|
+
| **AutoCompleteInput** | Text field with autocompletion |
|
|
145
|
+
| **SearchInput** | Search field with history management |
|
|
146
|
+
| **TabReplaceTextEdit** | Text editor with tab replacement |
|
|
147
|
+
|
|
148
|
+
### 🏷️ Label Widgets (4)
|
|
149
|
+
|
|
150
|
+
| Widget | Description |
|
|
151
|
+
| --------------------- | --------------------------------- |
|
|
152
|
+
| **ClickableTagLabel** | Clickable tag with toggle state |
|
|
153
|
+
| **FramedLabel** | Framed label for advanced styling |
|
|
154
|
+
| **HoverLabel** | Label with hover icon display |
|
|
155
|
+
| **IndicatorLabel** | Status indicator with colored LED |
|
|
156
|
+
|
|
157
|
+
### 🔧 Miscellaneous Widgets (6)
|
|
158
|
+
|
|
159
|
+
| Widget | Description |
|
|
160
|
+
| ------------------ | ----------------------------------------- |
|
|
161
|
+
| **CircularTimer** | Animated circular timer |
|
|
162
|
+
| **DraggableItem** | Draggable list item component |
|
|
163
|
+
| **DraggableList** | List with draggable and reorderable items |
|
|
164
|
+
| **OptionSelector** | Option selector with animated selector |
|
|
165
|
+
| **ToggleIcon** | Toggleable icon (open/closed states) |
|
|
166
|
+
| **ToggleSwitch** | Modern toggle switch with animation |
|
|
167
|
+
|
|
168
|
+
## 📦 Dependencies
|
|
169
|
+
|
|
170
|
+
- **PySide6>=6.0.0** – Qt for Python framework
|
|
171
|
+
- **typing_extensions>=4.0.0** – Extended typing support
|
|
172
|
+
|
|
173
|
+
## 🔧 Quick API Reference
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
from ezqt_widgets import (
|
|
177
|
+
# Button widgets
|
|
178
|
+
DateButton, IconButton, LoaderButton,
|
|
179
|
+
# Input widgets
|
|
180
|
+
AutoCompleteInput, SearchInput, TabReplaceTextEdit,
|
|
181
|
+
# Label widgets
|
|
182
|
+
ClickableTagLabel, FramedLabel, HoverLabel, IndicatorLabel,
|
|
183
|
+
# Misc widgets
|
|
184
|
+
CircularTimer, DraggableList, OptionSelector, ToggleIcon, ToggleSwitch,
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
# Button examples
|
|
188
|
+
date_btn = DateButton(placeholder="Select date")
|
|
189
|
+
icon_btn = IconButton(icon="path/to/icon.png", text="Click")
|
|
190
|
+
loader_btn = LoaderButton(loading_text="Loading...")
|
|
191
|
+
|
|
192
|
+
# Input examples
|
|
193
|
+
auto_input = AutoCompleteInput(completions=["A", "B", "C"])
|
|
194
|
+
search_input = SearchInput(max_history=20)
|
|
195
|
+
|
|
196
|
+
# Misc examples
|
|
197
|
+
timer = CircularTimer(duration=5000, loop=True)
|
|
198
|
+
switch = ToggleSwitch(checked=True)
|
|
199
|
+
selector = OptionSelector(options=["Small", "Medium", "Large"])
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## 📄 License
|
|
203
|
+
|
|
204
|
+
MIT License – See [LICENSE](LICENSE) file for details.
|
|
205
|
+
|
|
206
|
+
## 🔗 Links
|
|
207
|
+
|
|
208
|
+
- **Repository**: [https://github.com/neuraaak/ezqt_widgets](https://github.com/neuraaak/ezqt_widgets)
|
|
209
|
+
- **Issues**: [GitHub Issues](https://github.com/neuraaak/ezqt_widgets/issues)
|
|
210
|
+
- **Documentation**: [neuraaak.github.io/ezqt_widgets](https://neuraaak.github.io/ezqt-widgets/)
|
|
211
|
+
- **PyPI**: [pypi.org/project/ezqt-widgets](https://pypi.org/project/ezqt-widgets/)
|
|
212
|
+
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
**EzQt Widgets** – Modern, typed, and beautiful Qt widgets for Python. 🎨
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Button Widgets
|
|
2
|
+
|
|
3
|
+
Specialized button widgets with advanced functionality: date selection with
|
|
4
|
+
calendar popup, icon-enhanced buttons and buttons with loading animations.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## DateButton
|
|
9
|
+
|
|
10
|
+
::: ezqt_widgets.button.date_button.DateButton
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## DatePickerDialog
|
|
15
|
+
|
|
16
|
+
::: ezqt_widgets.button.date_button.DatePickerDialog
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## IconButton
|
|
21
|
+
|
|
22
|
+
::: ezqt_widgets.button.icon_button.IconButton
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## LoaderButton
|
|
27
|
+
|
|
28
|
+
::: ezqt_widgets.button.loader_button.LoaderButton
|