Я создал таблицу в PyQt5 и заполнил ее аналогично тому, как это делается в этом сообщении а>. Я хочу выровнять по центру все ячейки, но когда я пытаюсь выровнять каждую ячейку, мой QTableWidgetItem становится None.
Согласно документам setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)
должно работать. См. также здесь
Вот рабочий пример, где self.db_table — это QTableWidget.
for row in rows:
inx = rows.index(row)
self.db_table.insertRow(inx)
self.db_table.setItem(inx, 0, QTableWidgetItem(str(row[0])))
self.db_table.setItem(inx, 1, QTableWidgetItem(str(row[1])))
self.db_table.setItem(inx, 2, QTableWidgetItem(str(row[2])))
self.db_table.setItem(inx, 3, QTableWidgetItem(str(row[3])))
self.db_table.setItem(inx, 4, QTableWidgetItem(str(row[4])))
И когда я добавляю setTextAlignment()
, он делает все QTableWidgetItems None:
for row in rows:
inx = rows.index(row)
self.db_table.insertRow(inx)
self.db_table.setItem(inx, 0, QTableWidgetItem(str(row[0])).setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter))
self.db_table.setItem(inx, 1, QTableWidgetItem(str(row[1])).setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter))
self.db_table.setItem(inx, 2, QTableWidgetItem(str(row[2])).setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter))
self.db_table.setItem(inx, 3, QTableWidgetItem(str(row[3])).setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter))
self.db_table.setItem(inx, 4, QTableWidgetItem(str(row[4])).setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter))
Есть ли причина, почему это не работает?