python qtablewidget_PyQt5高级界面控件之QTableWidget的具体使用方法

前言

QTableWidget是Qt程序中常用的显示数据表格的控件,类似于c#中的DataGrid。QTableWidget是QTableView的子类,它使用标准的数据模型,并且其单元数据是通过QTableWidgetItem对象来实现的,使用QTableWidget时就需要QTableWidgetItem。用来表示表格中的一个单元格,整个表格就是用各个单元格构建起来的

QTableWidget类中的常用方法

方法

描述

setROwCount(int row)

设置QTableWidget表格控件的行数

setColumnCount(int col)

设置QTableWidget表格控件的列数

setHorizontalHeaderLabels()

设置QTableWidget表格控件的水平标签

setVerticalHeaderLabels()

设置QTableWidget表格控件的垂直标签

setItem(int ,int ,QTableWidgetItem)

在QTableWidget表格控件的每个选项的单元控件内添加控件

horizontalHeader()

获得QTableWidget表格控件的表格头,以便执行隐藏

rowCount()

获得QTableWidget表格控件的行数

columnCount()

获得QTableWidget表格控件的列数

setEditTriggers(EditTriggers triggers)

设置表格是否可以编辑,设置表格的枚举值

setSelectionBehavior

设置表格的选择行为

setTextAlignment()

设置单元格内文本的对齐方式

setSpan(int row,int column,int rowSpanCount,int columnSpanCount)

合并单元格,要改变单元格的第row行,column列,要合并rowSpancount行数和columnSpanCount列数

row:要改变的行数

column:要改变的列数

rowSpanCount:需要合并的行数

columnSpanCount:需要合并的列数

setShowGrid()

在默认情况下表格的显示是有网格的,可以设置True或False用于是否显示,默认True

setColumnWidth(int column,int width)

设置单元格行的宽度

setRowHeight(int row,int height)

设置单元格列的高度

编辑规则的枚举值类型

选项

描述

QAbstractItemView.NoEditTriggers0No

0

不能对表格内容进行修改

QAbstractItemView.CurrentChanged1Editing

1

任何时候都能对单元格进行修改

QAbstractItemView.DoubleClicked2Editing

2

双击单元格

QAbstractItemView.SelectedClicked4Editing

4

单击已经选中的内容

QAbstractItemView.EditKeyPressed8Editing

8

当修改键按下时修改单元格

QAbstractItemView.AnyKeyPressed16Editing

16

按任意键修改单元格

QAbstractItemView.AllEditTriggers31Editing

31

包括以上所有条件

表格选择行为的枚举值

选择

描述

QAbstractItemView.SelectItems0Selecting

0

选中单个单元格

QAbstractItemView.SelectRows1Selecting

1

选中一行

QAbstractItemView.SelectColumns2Selecting

2

选中一列

单元格文本水平对齐方式

选项

描述

Qt.AlignLeft

将单元格内的内容沿单元格的左边缘对齐

Qt.AlignRight

将单元格内的内容沿单元格的右边缘对齐

Qt.AlignHCenter

在可用空间中,居中显示在水平方向上

Qt.AlignJustify

将文本在可用空间内对齐,默认从左到右

单元格文本垂直对齐方式

选项

描述

Qt.AlignTop

与顶部对齐

Qt.AlignBottom

与底部对齐

Qt.AlignVCenter

在可用空间中,居中显示在垂直方向上

Qt.AlignBaseline

与基线对齐

如果要设置水平和垂直方向对齐方式,比如在表格空间内上下,左右居中对齐,那么只要使用Qt,AlignHCenter和Qt,AlignVCenter即可

实例:QTableWidget的基本用法

import sys

from PyQt5.QtWidgets import *

class Table(QWidget):

def __init__(self):

super(Table, self).__init__()

self.initUI()

def initUI(self):

self.setWindowTitle("QTableWidget例子")

self.resize(400,300)

layout=QHBoxLayout()

#实现的效果是一样的,四行三列,所以要灵活运用函数,这里只是示范一下如何单独设置行列

TableWidget=QTableWidget(4,3)

# TableWidget = QTableWidget()

# TableWidget.setRowCount(4)

# TableWidget.setColumnCount(3)

#设置水平方向的表头标签与垂直方向上的表头标签,注意必须在初始化行列之后进行,否则,没有效果

TableWidget.setHorizontalHeaderLabels(['姓名','性别','体重(kg)'])

#Todo 优化1 设置垂直方向的表头标签

#TableWidget.setVerticalHeaderLabels(['行1', '行2', '行3', '行4'])

#TODO 优化 2 设置水平方向表格为自适应的伸缩模式

##TableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

#TODO 优化3 将表格变为禁止编辑

#TableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)

#TODO 优化 4 设置表格整行选中

#TableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)

#TODO 优化 5 将行与列的高度设置为所显示的内容的宽度高度匹配

#QTableWidget.resizeColumnsToContents(TableWidget)

#QTableWidget.resizeRowsToContents(

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值