QTableView几个用法

QTableView
http://qt-project.org/doc/qt-4.8/qtableview.html
viewM = new QTableView(this);
viewM->setModel(model); //设置model to see:http://qt-project.org/doc/qt-4.8/model-view-programming.html

 viewM->setMouseTracking(true); //获取鼠标消息
 viewM->horizontalHeader()->setVisible(false); //水平头不显示
 viewM->verticalHeader()->setVisible(false);
 viewM->setEditTriggers(QAbstractItemView::NoEditTriggers); //禁止编辑
 viewM->setSelectionMode(QAbstractItemView::SingleSelection); //可以单选
 viewM->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //关闭滚动条
 viewM->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
 viewM->setAutoScroll(false);
 viewM->setAlternatingRowColors(true);

 connect(viewM,SIGNAL(entered(const QModelIndex)),this,SLOT(entered(const QModelIndex)));

 for(int row = 0; row < ROWS; ++row)
 {
  viewM->setRowHeight(row,40);
  viewM->setColumnWidth(row,60);
 }
 
从QAbstractTableModel继承的类要重载以下三个函数。

int rowCount(const QModelIndex &parent) const{return 10};
 int columnCount(const QModelIndex &parent) const{return 10;};
 QVariant data(const QModelIndex &index, int role) const{return "demo"};
 
 

 

 还有,当向model写数据时,有时不能立即刷新。比如向某个单元格写一个数据,希望view马上就可以显示出来。我找到的方法就是让model 发出signal

重载model的setData(),当数据更新完成后,emit dataChanged(index,index);

 

 


bool Q3TTableModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
 if(Qt::DisplayRole == role)
 {
  Marker marker = boardM->CellAt(index.row(),index.column());
  if(None==marker)
  {
   boardM->setCellAt(index.row(),index.column(),static_cast<Marker>(value.toInt()));
   emit dataChanged(index,index);
   return TestForWinning(Position(index.row(),index.column()));
   //return true;
  }
 }
 return false;
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值