首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对齐QTableWidgetItem会导致项为None

对齐QTableWidgetItem会导致项为None
EN

Stack Overflow用户
提问于 2017-11-07 21:53:30
回答 1查看 3.1K关注 0票数 1

我在PyQt5中创建了一个表,并填充了它,类似于它在这个职位中的实现方式。我想要对齐所有的单元格,但是当我尝试对齐每个单元格时,我的QTableWidgetItem就变成零了。

根据文档的说法,setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)应该能工作。也见这里

下面是一个工作示例,其中self.db_table是QTableWidget。

代码语言:javascript
复制
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都没有:

代码语言:javascript
复制
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))

这有什么原因不起作用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 22:02:34

setTextAlignment()方法不返回任何参数,它等于None,然后将None传递给setItem,您必须将项目创建为item = QTableWidgetItem({}),然后使用item.setTextAlignment({}),最后为每个元素添加self.db_table.setItem(inx, 0, item),简化后的表单如下:

代码语言:javascript
复制
for row in rows:
    inx = rows.index(row)
    self.db_table.insertRow(inx)
    for i, v in zip(range(5), row):
        item = QTableWidgetItem(str(v))
        item.setTextAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)
        self.db_table.setItem(inx, i, item)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47168063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档