[PySide] setLayout and setCentralWidget when using true_property

Christian Tismer-Sperling tismer at stackless.com
Thu Nov 24 14:11:34 CET 2022


Hi Matt,

this looked also weird for me (I made these features) and I was tempted
to change the centralWidget to a property, but we decided to stay
compatible with the Qt documentation, where you can find this as normal
getter and setter functions.

I hope this changes sometimes soon. There is also some effort to
support this information in the Qt for Python docs.

What you can do immediately:

Use the pyi generator with true_property and snake_case enabled.
Then you get the properties listed in QtCore.pyi etc.

   <your-bin-folder>/pyside6-genpyi all --feature snake_case \
                                                  true_property

Cheers -- Chris


On 20.11.22 02:50, Matt Milner wrote:
> 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
> 
> _______________________________________________
> PySide mailing list
> PySide at qt-project.org
> https://lists.qt-project.org/listinfo/pyside

-- 
Christian Tismer-Sperling    :^)   tismer at stackless.com
Software Consulting          :     http://www.stackless.com/
Strandstraße 37              :     https://github.com/PySide
24217 Schönberg              :     GPG key -> 0xFB7BEE0E
phone +49 173 24 18 776  fax +49 (30) 700143-0023



More information about the PySide mailing list