tableWidget的setTextAlignment

在tableWidget中经常需要对表进行赋值,并且要调整显示,如居中、靠右等。网上看了许多帖子,都是如下:

​
  self.tableWidget.setItem(i,2,QTableWidgetItem(a[i]).setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter))

​

设置后列中直接没有显示。后经反复调测发现,原来正确的写法应该如下:

    self.tableWidget.setItem(i,2,QTableWidgetItem(a[i]))
    self.tableWidget.item(i,2).setTextAlignment(4 | 4)
    # self.tableWidget.item(i,2).setTextAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter)

要说明的是,不能赋值时直接调整布局,而应该先赋值后再对该列进行布局调整。调整两种写法都可以,4 | 4与QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter等效。对了,一定是QtCore.Qt.AlignCenter,许多贴里上说的Qt.AlignCenter不对。

 

abtableetleWidgetttableWidgetbl

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在Qt中,可以使用QTableWidget来实现表格的显示和管理。如果需要实现分页显示,可以通过以下步骤来实现: 1. 在QTableWidget中添加分页控件,例如QComboBox或QSpinBox,用于选择需要显示的页数。 2. 定义一个函数来更新表格的显示,该函数应该接受页数作为参数,并根据页数来更新表格的内容。可以使用QTableWidget的setRowCount()和setItem()函数来更新表格。 3. 在分页控件的槽函数中调用更新表格的函数,以实现分页显示。 以下是一个示例代码,演示如何在QTableWidget中实现分页显示: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QComboBox, QHBoxLayout, QWidget, QTableWidgetItem from PyQt5.QtCore import Qt class TableWidget(QWidget): def __init__(self): super().__init__() # 创建表格和分页控件 self.tableWidget = QTableWidget() self.pageComboBox = QComboBox() # 布局管理器 layout = QHBoxLayout() layout.addWidget(self.tableWidget) layout.addWidget(self.pageComboBox) self.setLayout(layout) # 设置表格属性 self.tableWidget.setColumnCount(3) self.tableWidget.setHorizontalHeaderLabels(['Name', 'Age', 'Gender']) self.tableWidget.setEditTriggers(QTableWidget.NoEditTriggers) self.tableWidget.setSelectionBehavior(QTableWidget.SelectRows) self.tableWidget.setSelectionMode(QTableWidget.SingleSelection) # 添加数据到表格 data = [['Tom', '20', 'Male'], ['Lucy', '18', 'Female'], ['Jack', '22', 'Male'], ['Lily', '19', 'Female'], ['Mike', '21', 'Male'], ['Mary', '23', 'Female']] self.tableWidget.setRowCount(len(data)) for i, row in enumerate(data): for j, cell in enumerate(row): item = QTableWidgetItem(cell) item.setTextAlignment(Qt.AlignCenter) self.tableWidget.setItem(i, j, item) # 添加分页控件的选项 self.pageComboBox.addItems(['1', '2', '3']) # 设置分页控件的槽函数 self.pageComboBox.currentIndexChanged.connect(self.updateTable) def updateTable(self, pageIndex): # 根据页数更新表格的显示 pageSize = 2 startIndex = pageIndex * pageSize endIndex = (pageIndex + 1) * pageSize rowCount = self.tableWidget.rowCount() for i in range(rowCount): if i >= startIndex and i < endIndex: self.tableWidget.showRow(i) else: self.tableWidget.hideRow(i) if __name__ == '__main__': app = QApplication([]) window = TableWidget() window.show() app.exec_() ``` 在上面的示例中,我们创建了一个包含6行3列数据的表格,并添加了一个QComboBox作为分页控件。在分页控件的槽函数中,我们定义了一个updateTable()函数来根据页数更新表格的显示。在updateTable()函数中,我们通过计算起始和结束行索引来确定需要显示的行,并使用showRow()和hideRow()函数来显示或隐藏行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值