Qt TableView 第一部分
最近做Qt项目 用到Qtableview 显示数据 网上查了些资料 结合自己在工程中遇到的实际问题 总结了一些Qtableview的用法:
QTableView *tableview;
QStandardItemModel *model = new QStandardItemModel();
Qtableview用的mvc模式 实际上用到的是model/view居多
tableview->setmodel(model);来使用model
model->setHeaderdata();设置表的column名称;
当然如果想隐藏column名称的话 只需要用:tableview->horizontalHeader()->setVisible(false);
隐藏row名称:tableview->verticalHeader()->setVisible(false);
若是想设置表格column的样式 使用:tableview->->horizontalHeader()->setStyleSheet();
使用setColumnWidth()来设置Header的宽度;
QT还提供了对表格表头进行设置的model:
tableview->horizontalHeader()->setResizeMode();
tableview->verticalHeader()->setResizeMode();
Qt提供的 setResizeMode()有四种:
QHeaderView::Interactive;
QHeaderView::Fixed;
QHeaderView::Stretch;
QHeaderView::ResizeToContents;
对表格表头设置完之后,接下来就是表格之中的item:
要得到当前选中的item,如下操作:
QModelIndex Index = tableview->currentIndex();得到当前的Index;
QStandardItem *item = listAll->itemFromIndex(index);//根据index 得到item
如果想让点击item 发送信号 则可以使用:
connect(tableview, SIGNAL(clicked ( const QModelIndex &)), this, SLOT(Function(const QModelIndex &)));//点击tableview中的item触发信号
若要对item可以设置背景颜色 使用:setBackground()即可;
另外: horizontalHeaderItem用来得到具体的headerItem 然后使用setBackgroundColor设置背景色 不知道什么原因我在使用过程中没有产生效果 不知哪个地方出现问题了 有知道的 希望能够指点一二:
QStandardItem *headerItem = model->horizontalHeaderItem(i); headerItem->setBackground();
在我使用
headerItm->text();时是可以得到header的text的;