PyQt6: setting enum values to properties using keyword args in init.
    alan moore 
    me at alandmoore.com
       
    Fri Jan 15 17:23:09 GMT 2021
    
    
  
Hello all,
I'm starting the process of porting some PyQt5 code to PyQt6, and step 
one is dealing with the namespacing of enums.
In PyQt5 I could specify certain property values as keyword arguments, e.g.:
     tab_widget = QtWidgets.QTabWidget(
         tabPosition=QtWidgets.QTabWidget.West,
         tabShape=QtWidgets.QTabWIdget.Triangular
     )
So converting to PyQt6, I figured I just need to fix the path of the 
enum values:
     tab_widget = QtWidgets.QTabWidget(
         tabPosition=QtWidgets.QTabWidget.TabPosition.West,
         tabShape=QtWidgets.QTabWIdget.TabShape.Triangular
     )
However, this gives an error:
     TypeError: unable to convert a Python 'TabPosition' object to a C++ 
'TabPosition' instance
(and likewise with TabShape if I remove the tabPosition argument).
I *can* set these after the widget is created using the setter:
tab_widget.setTabPosition(QtWidgets.QTabWidget.TabPosition.West)
SO I guess this is my long-winded way of asking if this is a bug, if I'm 
just doing it wrong, or if keyword property arguments are no longer 
supported.  Thanks!
    
    
More information about the PyQt
mailing list