0
У меня есть этот код:Как выровнять столбец QTableView
class ManifestModel(QtSql.QSqlTableModel):
def __init__(self, parent=None, db=QtSql.QSqlDatabase()):
super(ManifestModel, self).__init__(parent, db)
def flags(self, index):
if (index.column() == 4):
return QtCore.Qt.ItemIsEnabled
elif (index.column() == 6):
return QtCore.Qt.ItemIsEnabled
elif (index.column() == 3):
return QtCore.Qt.AlignHCenter
else:
return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEditable
Когда я запускаю его я получаю сообщение об ошибке:
builtins.TypeError: invalid result from ManifestModel.flags(), AlignmentFlag cannot be converted to PyQt5.QtCore.ItemFlags in this context
В той же процедуре, использующей ManifestModel
, у меня есть код:
ui.label = QtWidgets.QLabel(ui.page)
ui.label.setGeometry(QtCore.QRect(308, 0, 131, 20))
ui.label.setAlignment(QtCore.Qt.AlignCenter)
Так что же мне нужно сделать, чтобы изменить выравнивание в столбце QTableView?
Это работает отлично. Не могли бы вы рассказать мне, где вы нашли документацию, описывающую работу QtCore.Qt.DisplayRole? – nlgootee
@nlgootee. См .: [QAbstractItemModel.data] (http://doc.qt.io/qt-5/qabstractitemmodel.html#data) и [Qt.ItemDataRole] (http://doc.qt.io/qt-5/qt .html # ItemDataRole-перечисление). – ekhumoro