您的位置:首页 > 编程语言 > Qt开发

Qt Qtableview 的一些用法 希望共同学习探讨

2013-01-20 02:00 405 查看
最近做Qt项目 用到Qtableview 显示数据 网上查了些资料 结合自己在工程中遇到的实际问题 总结了一些Qtableview的用法:

QTableView *tableview;
QStandardItemModel *model = new QStandardItemModel();Qtableview用的mvc模式 实际上用到的是model/view居多tableview->setmodel(model);来使用modelmodel->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的;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Qt Qtableview