我正在PyQt中创建一些自定义小部件,这些小部件将用于Qt的设计器中。
其中一些具有Q_FLAGS
属性,例如QtCore.Qt.AlignmentFlag
的一些。因为我不会使用整个QtCore.Qt.Alignment
标志(这是不必要的,会造成混乱),所以我创建了一个QFlags类。你知道吗
class SomeWidget(QtWidgets.QWidget):
class LabelAlignment:
AlignLeft = int(QtCore.Qt.AlignLeft)
AlignHCenter = int(QtCore.Qt.AlignHCenter)
AlignRight = int(QtCore.Qt.AlignRight)
AlignTop = int(QtCore.Qt.AlignTop)
AlignVCenter = int(QtCore.Qt.AlignVCenter)
AlignBottom = int(QtCore.Qt.AlignBottom)
QtCore.Q_FLAGS(LabelAlignment)
(注意:我正在使用int()
转换,因为我需要执行一些位操作,而且,在设计器的属性表中,标志pyqtProperty始终被读取为int
;我尝试使用普通标志,但结果是相同的)
问题是,在Designer的属性编辑器中,这些标志是按不可预知的顺序排序的。我假设这是由于使用LabelAlignment.__dict__
来映射类的标志,从而创建了一个“未排序”的标志列表(很明显,每次设计器加载插件接口时都会更改,因为python的dict是无序的)。你知道吗
有没有办法对这些标志进行排序(可能使用OrderedDict)?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐