[PyQt] Equivalent of Q_PROPERTY's MEMBER for pyqtProperty?

Kyle Altendorf sda at fstab.net
Sun Nov 11 13:38:35 GMT 2018


As I remember it's a mess but that sounds like my @pyqtify (oh what a bad name...) Decorator for @attr.s classes.  I use it to create signals so my attrsmodel (for tree views) can be backed by attrs classes.

https://github.com/altendky/stlib/blob/399f3119576ee4e6f9310d646f08c8eb221f0dcd/epyqlib/tests/utils/test_qt.py
https://github.com/altendky/stlib/blob/399f3119576ee4e6f9310d646f08c8eb221f0dcd/epyqlib/utils/qt.py

Basically for each attrs attribute it creates a property (Python by default, you can specify pyqtProperty instead if you want).  The property is used to emit a signal on change.  A separate object is created to house the signals and is accessible via epyqlib.utils.qt.pyqtify_signals().  In my case mostly I don't write that much because it's just backend in my model.

Hopefully someday I'll tidy up my library so it's a bit easier to follow and try out.  Sorry.

Cheers,
-kyle

On November 11, 2018 6:14:00 AM EST, Elvis Stansvik <elvstone at gmail.com> wrote:
>Hi all,
>
>E.g. in C++ one can do:
>
>    Q_PROPERTY(bool showFileDialog MEMBER m_showFileDialog NOTIFY
>showFileDialogChanged)
>...
>public:
>    bool m_showFileDialog = false;
>...
>signals:
>    void showFileDialogChanged();
>
>This makes the m_showFileDialog member variable readable and writable
>without the need of creating READ and WRITE accessor functions, and Qt
>emits automatically the showFileDialogChanged signal when needed.
>
>Is it possible to get this kind of convenience with PyQt?
>
>Cheers,
>Elvis
>_______________________________________________
>PyQt mailing list    PyQt at riverbankcomputing.com
>https://www.riverbankcomputing.com/mailman/listinfo/pyqt


More information about the PyQt mailing list