Qt:视图QTableView/QTableWidget

QTableView

1. 表头
水平表头:horizontalHeader()
垂直表头:verticalHeader()
表头字段个数:count();
2. 绑定模型:setModel()
3. 获取绑定的模型:selectionModel()
4. 委托:setItemDelegate(new ItemDelegate(this)); 
5. 信号
表头点击:sectionClicked(int)
单元格点击:clicked(const QModelIndex&)
模型改变:currentChanged(const QModelIndex&, const QModelIndex&)

QTableWidget

1. 表头字体
QFont font = horizontalHeader()->font();
font.setBold(true);
horizontalHeader()->setFont(font);
2. 表头字段
QStringList header;
header<<"姓名"<<"年龄";
setHorizontalHeaderLabels(header);
3.  表头单元格
QTableWidgetItem *hearderItem = horizontalHeaderItem(0); // 获得水平方向表头的Item对象
hearderItem->setFont(QFont("Helvetica"));                             // 设置字体
hearderItem->setBackgroundColor(QColor(0,60,10));             // 设置单元格背景颜色
hearderItem->setTextColor(QColor(200,111,30));                   // 设置文字颜色
4. 单元格
setItem(0,0,new QTableWidgetItem(QIcon("images/IED.png"), "Jan's month"));
或者
QTableWidgetItem *item = new QTableWidgetItem("Apple"); 
item->setFont(QFont("Helvetica"));                             // 设置字体
item->setBackgroundColor(QColor(0,60,10));             // 设置单元格背景颜色
item->setTextColor(QColor(200,111,30));                   // 设置文字颜色
setItem(0, 0, item); 
5.  点击单元格信号
void itemClicked(QTableWidgetItem*)
6. 当前行
currentIndex().row();
7. 单元格修改
QModelIndex index = model->index(0, 0); // 0行0列单元格
model->setData(index, QVariant::fromValue(100));
8. 单元格控件
QComboBox *comBox = new QComboBox(); 
comBox->addItem("Y"); 
comBox->addItem("N"); 
setCellWidget(0, 1, comBox); 
9. 合并单元格
setSpan(0, 0, 3, 1); // 要改变单元格的 1行数 2列数 要合并的 3行数 4列数

显示

1. 显示所有
model->select();
2. 显示指定查询结果
model->setFilter("name=1");
3. 排序
model->setSort(1,Qt::AscendingOrder);// 升序排列,第0列
 model->setSort(0,Qt::DescendingOrder); // 降序
4. 隐藏某列数据
hideColumn(0);
5. 滚动条
QTableView::horizontalScrollBar()/verticalScrollBar()
6. 滚动:
QTableView::verticalScrollBar()->setSliderPosition();  // 设置当前滑动条的位置
QTableView::verticalScrollBar()->maximum();            // 滑动条能移动的最大位置
QTableView::verticalScrollBar()->value();                      // 获得当前滑动条的位置
7. 大小
行/列大小:setColumnWidth()/setRowHeight()
包裹内容:resizeColumnsToContents()/resizeRowsToContents()
最大宽度:setMaximumWidth(100);
对齐:setDefaultAlignment(Qt::AlignVCenter | Qt::AlignRight);
表头大小:setDefaultSectionSize(100);
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值