目录
九、QTableWidget怎么按照某列的大小来排序(有两种方法)
前言:
QTableWidget 表格单元格的行标和列标都是从 0 开始;QTableWidget 表格中,每个单元格都是 QTableWidgetItem 类的实例对象
一、 创建行表头
QStringList cHeader;
cHeader << "编号" << "名字" << "日期" ;
m_tableWidget->setHorizontalHeaderLabels(cHeader);
创建之后,运行发现显示不出来表头!查找原因发现要设置了行数和列数才行:
方法1 构造的时候就创建了行数
m_tableWidget = new QTableWidget(10,10,this);
方法2
m_tableWidget->setRowCount(10);
m_tableWidget->setColumnCount(3);
二、往表格里插入单元项(带图片和不带图片)
//..1
QTableWidgetItem *item=new QTableWidgetItem();
item->setText(“示例”);
item->setBackgroundColor(QColor("#8EE5EE"));//背景颜色
item->setTextColor(QColor("#8EE5EE"));//字体颜色
item->setFont(QFont("Helvetica"));//字体样式
m_tableWidget->setItem(row,col,item);
//..2插入带图片的项目
m_tableWidget->setItem(row,col,new QTableWidgetItem(QIcon("images/found.png"), "查找"));
另:如果需要对所有的单元格都使用这种字体,则可以使用 tableWidget->setFont(QFont("Helvetica"));
三、 禁止表格可编辑
在默认情况下,表格里的字符是可以更改的。比如双击一个单元格,就可以修改原来的内容。
m_tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
QAbstractItemView::NoEditTriggers | 不允许编辑 |
QAbstractItemView::CurrentChanged | 只要当前项发生更改,编辑就会开始 |
QAbstractItemView::DoubleClicked | 当项目(指表格里的单元项)被双击时,编辑开始 |
QAbstractItemView::SelectedClicked | 当单击已选择的项目时,编辑开始 |
QAbstractItemView::EditKeyPressed | 当在项目上按下Platform编辑键时,开始编辑。 |
QAbstractItemView::AnyKeyPressed | 当在项目上按下任何键时,编辑开始。 |
QAbstractItemView::AllEditTriggers | 开始编辑以上所有操作 |
四、 按行或列或单个选择单元项
m_tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
QAbstractItemView::SelectItems | 选择单个项目. |
QAbstractItemView::SelectRows | 行 |
QAbstractItemView::SelectColumns | 列 |
五 、设置列宽(包括列表头的和行表头的)
这个对列表头的设置有用,记得加头文件
#include <QHeaderView>不然会报错
m_tableWidget->verticalHeader()->setMinimumWidth(42);
m_tableWidget->horizontalHeader()->setMinimumHeight(30);
1 这个普通的行和列都可以设置固定宽高
m_tableWidget->setColumnWidth(1,200);
m_tableWidget->setRowHeight(1,120);
表头的一些相关设置还可以看看这个:因为上面的能达到