qt中QTableWidget的使用

QTableWidget是QTableView的子类,要是用QTableWidget就必须使用QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,整个表格都需要用逐个单元格构建起来。

//构造了一个QTableWidget对象,并且设置为10行,5列
QTableWidget *tableWidget=new QTableWidget(10,5);
上面功能还有另外一种形式:
QTableWidget *tableWidget=new QTableWidget;
tableWidget->setRowCount(10);
tableWidget->setColumnCount(5);

//设置标题
tableWidget->setWindowTitle("QTableWidget & Item");

//设置表格
tableWidget->resize(350,200);
QStringList header;
header<<"Month"<<"Description";
tableWidget->setHorizontalHeaderLabels(header);
tableWidget->setItem(0,0,new QTableWidgetItem("Jan"));
tableWidget->setItem(1,0,new QTableWidgetItem("Feb"));
tableWidget->setItem(2,0,new QTableWidgetItem("Mar"));
tableWidget->setItem(0,1,new QTableItem(QIcon("1.png"),"Jan`s month"));

//将表格变为禁止编辑
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

QAbstractItemView::CurrentChanged--任何时候都能对单元格进行修改
QAbstractItemView::DoubleClicked--双击单元格
QAbstractItemView::SelectedClicked--单击已选中的内容
QAbstractItemView::EditKeyPressed
QAbstractItemView::AnyKeyPressed--按下任意键就能修改
QAbstractItemView::AllEditTriggers--以上条件全包括

//设置表格为整行选择
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);

QAbstractItemView::SelectItems--选中单个单元格
QAbstractItemView::SelectRows--选中一行
QAbstractItemView::SelectColumns--选中一列

//单个选中和多个选中的设置
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);--设置为可以选中多个目标

QAbstractItemView::NoSelection--不能选择
QAbstractItemView::SingleSelection--选中单个目标
QAbstractItemView::MultiSelection--选中多个目标
QAbstractItemView::ExtendedSelection(ContiguousSelection)--正常情况下是单选,按下Ctrl和Shift键后,可以多选

//表格表头的显示与隐藏
tableWidget->verticalHeader()->setVisible(false);--隐藏列表头
tableWidget->horizontalHeader()->setVisible(false);--隐藏行表头

//对表头文字的字体、颜色进行设置
QTableWidgetItem *columnHeaderItem0=tableWidget->horizontalHeaderItem(0);--获取水平方向表头的Item对象
columnHeaderItem0->setFont(QFont("Helvetica"))--设置字体
columnHeaderItem0->setBackgroundColor(QColor(0,60,10))--设置单元格背景颜色
columnHeaderItem0->setTextColor(QColor(200,111,30))--设置文字颜色

//在单元格中添加控件
QComboBox *comBox=new QComboBox();
comBox->addItem("Y");
comBox->addItem("N");
tableWidget->setCellWidget(0,2,comBox);
---------------------------------------------------------------------------------------

对QTableWidgetItem的设置:
//单元格设置字体颜色和背景颜色及字体字符
QTableWidgetItem *item=new QTableWidgetItem("Apple");
item->setBackgroundColor(QColor(0,60,10));
item->setTextColor(QColor(200,111,100));
item->setFont(QFont("Helvetica"));
tableWidget->setItem(0,3,item);

//设置单元格内文字的对齐方式
item->setTextAlignment();

//水平对齐方式有:
Qt.AlignLeft
Qt.AlignRight
Qt.AlignHCenter
Qt.AlignJustify

//垂直对齐方式有:
Qt.AlignTop
Qt.AlignBottom
Qt.AlignVCenter

注意:如果以上两种形式都要设置可以用:Qt.AlignHCenter|Qt.AlignVCenter

//合并单元格效果的实现
tableWidget->setSpan(0,0,3,1)--参数代表了--0,0代表了要改变的单元格的行数和列数--3,1代表了要合并的行数和列数

//设置单元格的大小
1.可以指定某个行或者列的大小:
tableWidget->setColumnWidth(3,200);
tableWidget->setRowHeight(3,60);
2.可以将行和列的大小设为与内容相匹配
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值