Как вы упомянули QWidget принимает f
, а QDialog также принимает f
. QWizard представляется нечетным, использующим flags
.Так как inspect.getfullargspec () не работает с объектами PySide, я рекомендую создать вспомогательную функцию, если вам нужно определить это во время выполнения.Помощник должен будет определить, использовать ли аргумент ключевого слова f или flags на основе известного списка классов виджетов.
from PySide2 import QtWidgets
FLAGS_WIDGETS = (QtWidgets.QWizard,)
def flags_kwarg(cls, flags):
if issubclass(cls, FLAGS_WIDGETS):
key = 'flags'
else:
key = 'f'
return {key: flags}
Затем его можно использовать как:
from PySide2 import QtCore
cls = QtWidgets.QWizard # or some other widget class
flags = QtCore.Qt.WindowFlags()
kwargs = flags_kwarg(cls, flags)
widget = cls(parent, **kwargs)