Files
superqt/CONTRIBUTING.md
Talley Lambert 40b34213fb Move to to qwidgets
commit 466fc7c19ace1343d23739e4058758cd21328511
Author: Talley Lambert <talley.lambert@gmail.com>
Date:   Wed Jun 2 20:22:38 2021 -0400

    add deploy cond

commit e9965e71490689935b61099225acc7f3bf5c2d48
Author: Talley Lambert <talley.lambert@gmail.com>
Date:   Wed Jun 2 20:20:45 2021 -0400

    more precommit

commit b39150b16d7d64a5530ec9a0e29e673e2b6ed0a4
Author: Talley Lambert <talley.lambert@gmail.com>
Date:   Wed Jun 2 19:52:42 2021 -0400

    updating precommit

commit d5018b38e7bc59f81cc161cca06fae829e493e3c
Author: Talley Lambert <talley.lambert@gmail.com>
Date:   Wed Jun 2 19:42:32 2021 -0400

    big reorg
2021-06-02 20:25:40 -04:00

1.6 KiB

Contributing to this repository

This repository seeks to accumulate Qt-based widgets for python (PyQt & PySide) that are not provided in the native QtWidgets module.

Clone

To get started fork this repository, and clone your fork:

# clone your fork
git clone https://github.com/<your_organization>/qwidgets
cd qwidgets

# install pre-commit hooks
pre-commit install

# install in editable mode
pip install -e .[dev]

# run tests & make sure everything is working!
pytest

Targeted platforms

All widgets must be well-tested, and should work on:

  • Python 3.7 and above
  • PyQt5 (5.11 and above) & PyQt6
  • PySide2 (5.11 and above) & PySide6
  • macOS, Windows, & Linux

Until qtpy supports PyQt6/PySide6, imports should use (and modify if necessary) qwidgets.qtcompat.

Style Guide

All widgets should try to match the native Qt API as much as possible:

  • Methods should use camelCase naming.
  • Getters/setters use the attribute()/setAttribute() pattern.
  • Private methods should use _camelCaseNaming.
  • __init__ methods should be like Qt constructors, meaning they often don't include parameters for most of the widgets properties.
  • When possible, widgets should inherit from the most similar native widget available. It should strictly match the Qt API where it exists, and attempt to cover as much of the native API as possible; this includes properties, public functions, signals, and public slots.

Testing

Tests can be run in the current environment with pytest. Or, to run tests against all supported python & Qt versions, run tox.