[PySide] setLayout and setCentralWidget when using true_property

Matt Milner milner94 at live.co.uk
Sun Nov 20 02:50:10 CET 2022


Hi all,

I have been attempting to port a small app from PyQt6 to PySide6, in part in order to use the more pythonic syntax enabled recently by:

from __feature__ import true_property, snake_case

Changing the syntax took a while but was eventually sorted. However, running the program resulted in a window appearing with the correct name but no widgets whatsoever. Diagnosing the issue took me quite a while but in the end I figured out that to set the layout of a widget and then make it the central widget it is apparently required to write:

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
...
        main_layout = QVBoxLayout()
layout_widget = QWidget()
        layout_widget.set_layout(main_layout)
        self.set_central_widget(layout_widget)

However, given that setter/getter methods of the form setText(info) has become set_text = info, I expected the syntax for setting a layout or central widget to be analogous i.e.:
...
        layout_widget.layout = main_layout
        self.central_widget = layout_widget

Is this intended behaviour or an oversight? If intended, why should setting a layout/widget be different to setting text or setting a widget to be enabled?

Kind regards,

Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20221120/f4491dc5/attachment.htm>


More information about the PySide mailing list