AttributeError: объект «PySide2.QtCore.Qt.Alignment» не имеет атрибута «testFlag»

Я использую Pyside2. я получаю ошибку

AttributeError: 'PySide2.QtCore.Qt.Alignment' object has no attribute 'testFlag'

для этого фрагмента кода

if (self.m_alignment.testFlag(Qt.AlignTop)):

Выравнивание определяется следующим образом:

m_alignment = Qt.AlignTop | Qt.AlignRight

Есть ли что-то, что я делаю неправильно? Или есть другой способ проверить флаг выравнивания в PySide2? Застрял на этом некоторое время.


person nwagu    schedule 18.02.2019    source источник
comment
Кажется, что PySide2 не поддерживает QFlags, сообщите об этом.   -  person eyllanesc    schedule 18.02.2019
comment
Используйте побитовое И: if self.m_alignment & Qt.AlignTop. Невозможно напрямую поддерживать QFlags в pyside/pyqt, потому что это класс-шаблон (специфичный для С++).   -  person ekhumoro    schedule 19.02.2019
comment
Похоже, что Qt — это специальный виртуальный модуль PyQt5 и/или PySide2.QtCore. Подробнее см. этот ответ и все вопросы и ответы. Не уверен на 100%, что это напрямую исправит.   -  person LightCC    schedule 06.09.2019