目录
QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget组件后,可以在propertyEditor里对其进行属性设置,双击这个组件,可以打开一个编辑器,对其Colum、Row和Item行编辑。
1、设置表头
//设置表头 QTableWidgetItem * headerItem; QStringList headerText; headerText<<"姓名"<<"性别"<<"出生日期"; ui->tableInfo->setHorizontalHeaderLabels (headerText); ui->tableInfo->setColumnCount (headerText.count()) ; for (int i = 0 ; i < ui->tableInfo->columnCount() ; i++) { headerItem = new QTablewidgetItem(headerText.at (i)) ; QFont font = headerItem->font(); font.setBold(true) ;//设置为粗体 font.setPointsize ( 12) ;//字体大小 headerItem->setTextcolor(Qt : :red) ; //字体颜色 headerItem->setFont (font) ;//设置字体 ui->tableInfo->setHorizontalHeaderItem (i, headerItem) ; }
2、函数对单元格属性使用
QTableWidgetItem : setTextAlignment (int alignment):设置文字对齐方式。 setBackground(const QBrush &brush):设置单元格背景颜色。 setForeground(const QBrush &brush):设置单元格前景色。 setIcon(const QIcon &icon):为单元格设置一个显示图标。 setFont(const QFont &font):为单元格显示文字设置字体。 setCheckState(Q::CheckState state):设置单元格勾选状态,单元格里出现一个QCheckBox组件。setFlags(Qt::ItemFlags flags):设置单元格的一些属性标记。
QTableWidget: 用QTableWidget的setItem函数将item设置为单元格的项, QTableWidget::clearContents() 函数清除表格数据区的所有内容,但是不清除表头。 QTableWidget ::rowCount() 函数返回表格数据区的行数。
3、信号
当前单元格发生切换时,会发射currentCellChanged()信号和 currentltemChanged()信号,两个信号都可以使用,只是传递的参数不同。
currentCellChanged()信号中:传递的参数currentRow和 currentColumn表示当前单元格的行号和列号,通过这两个编号可以得到单元格的QTableWidgetItem对象item。
4、插入、删除、添加
QTableWidget:
/* 在行号为row的行前面插入一行,如果row等于或大于总行数,则在表格最后添加一行。 insertRow()函数只是插入一个空行,不会为单元格创建QTableWidgetltem对象, 需要手工为单元格创建。 */ insertRow(int row): //删除行号为row的行。 removeRow(int row):
5、自动调整行高和列宽
QTableWidget: resizeColumnsToContents():自动调整所有列的宽度,以适应其内容 resizeColumnToContents(int column):自动调整列号为column的列的宽度 resizeRowsToContents():自动调整所有行的高度,以适应其内容 resizeRowToContents(int row):自动调整行号为row的行的高度 函数实际上是QTableWidget的父类QTableView的函数
6、其他属性
设置表格内容是否可编辑
QTableWidget的 EditTriggers属性表示是否可编辑,以及进入编辑状态的方式 ui->tableInfo->setEditTriggers (QAbstractItemView::Doubleclicked | QAbstractItemView::selectedclicked);//双击或获取焦点后单击,进入编辑状态 //不可编辑 ui->tableInfo->setEditTriggers(QAbstractItemView:: NoEditTriggers) ;
设置行表头、列表头是否显示
//是否显示行表头 checked:true 显示 false:不显示 ui->tableInfo->horizontalHeader()->setvisible (checked) ; //是否显示列表头 ui->tableInfo->verticalHeader()->setvisible(checked);
间隔行底色
/*setAlternatingRowColors(): 函数可以设置表格的行是否用交替底色显示,若为交替底色, 则间隔的一行会用灰色作为底色。具体底色的设置需要用styleSheet。 */ ui->tableInfo->setAlternatingRowColors(checked) ; //checked :true false
选择模式
/* setSelectionBehavior() 函数可以设置选择方式为单元格选择,还是行选择。 */ //选择行为:单元格选择 ui->tableInfo->setselectionBehavior(QAbstractItemView::SelectItems) ; //选择行为:行选择 ui->tableInfo->setselectionBehavior(QAbstractItemView::SelectRows) ;