2017-11-07 2 views
0

PyQt5에서 테이블을 만들고 그 결과를 this post과 비슷하게 채 웁니다. 모든 셀을 가운데 정렬하고 싶지만 각 셀을 정렬하려고하면 QTableWidgetItem이 None이됩니다.PyQt5 - QTableWidgetItem을 정렬하면 항목이 없습니다.

에 따르면 docssetTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)에 따라 작동해야합니다. here도 참조하십시오.

여기서 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]))) 

그리고 나는 그것이 모든 QTableWidgetItems 없음 수없는 setTextAlignment() 추가 할 때 :

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)) 

이 밤은 작동 왜 어떤 이유가 있습니까?

답변

0

setTextAlignment() 방법은 매개 변수를 반환하지 않는 그 없음을 동일하지 않으며, 다음 setItem에 없음을 통과하지 않습니다, 당신이해야하는 것은 item = QTableWidgetItem({})로 항목을 만든 다음 item.setTextAlignment({})를 사용하고 마지막에 각 요소에 대해 self.db_table.setItem(inx, 0, item)을 추가입니다 축소 된 형식은 다음과 같습니다.

for row in rows: 
    inx = rows.index(row) 
    self.db_table.insertRow(inx) 
    for i in range(5): 
     item = QTableWidgetItem(str(row[i])) 
     item.setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter) 
     self.db_table.setItem(inx, i, item) 
관련 문제