Qt 中,如何用model.setattribute->setData()方法来设置tableView指定单元格的背景颜色?

今天下午熟悉了一下tableview的使用,实际上也就简单的往表格里添加了几个项。
创建了一个mainwindow的qt工程(qtcreator),添加一个名为stu_info的tableview。
在mainwindow的构造函数中添加了如下代码:
QStandardItemModel *tableModel = new QStandardItemModel();
tableModel-&setColumnCount(2);
tableModel-&setHeaderData(0,Qt::Horizontal,tr(&姓名&));
tableModel-&setHeaderData(1,Qt::Horizontal,tr(&学号&));
tableModel-&setSortRole(1);
for(int j=0;j&3;j++)
QStandardItem *itemID = new QStandardItem(&小赵&);
tableModel-&setItem(j,0,itemID);
QStandardItem *itemUser = new QStandardItem(&&);
tableModel-&setItem(j,1,itemUser);
ui-&stu_info-&setModel(tableModel);
ui-&stu_info-&verticalHeader()-&hide();
ui-&stu_info-&setColumnWidth(0,30);
ui-&stu_info-&setSelectionBehavior(QAbstractItemView::SelectRows);直接运行就可以了。
运行起来后,你会发现这个表格很丑,如果你想让它变好看,那就得你自己动手了。
下面的链接是我的工程下载地址,qtcreator5.0.1建的,里面有一些多余的文件,有些事用vs2010导入.pro文件产生的,不会影响运行。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24916次
排名:千里之外
原创:30篇
转载:36篇
(2)(1)(4)(9)(5)(2)(4)(7)(16)(3)(6)(1)(3)(1)(2)(1)QT中使用QSqlQueryModel读取数据库问题
QT中使用QSqlQueryModel读取数据库问题
  在使用QT的QSqlQueryModel操作SQLite数据库的时候,遇到了查询只能返回并显示256个结果的问题,如图1:     图1  而显然通常SQLite数据库中不止只有256个数据,像在我这个程序中,我的SQLite数据库中存了935个数据,如图2:     图2  源代码如下:    bool HydrologicDataDisplay::updataquerymodel()  {  QSqlQueryModel *Model = new QSqlQueryM  QString selectfromtable = "select time,gaugingstation,stage,flow,windspeed,visibility,temperature from hydrologicdata"; & & & & Model-&setQuery(selectfromtable);  Model-&setHeaderData(0,Qt::Horizontal,tr("日期"));  Model-&setHeaderData(1,Qt::Horizontal,tr("测站"));  Model-&setHeaderData(2,Qt::Horizontal,tr("水位(m)"));  Model-&setHeaderData(3,Qt::Horizontal,tr("流量(m3/s)"));  Model-&setHeaderData(4,Qt::Horizontal,tr("风速"));  Model-&setHeaderData(5,Qt::Horizontal,tr("能见度"));  Model-&setHeaderData(6,Qt::Horizontal,tr("温度(℃)"));  tableView-&setModel(Model);    }  然而,错误就隐藏在疏忽大意之间,QT的QSqlQueryModel每次最多只能缓存查询结果的256条。即,如果查询语句操作的结果超过256条了,也只能返回256。这样就必然会导致在后续操作中的错误。因此,为了在程序的运行结果中显示更多的数据,我们需要做如下调整,在操作结果前先通过fetchmore()来获取所有的结果,更新代码如下:    bool HydrologicDataDisplay::updataquerymodel()  {  QSqlQueryModel *Model = new QSqlQueryM  QString selectfromtable = "select time,gaugingstation,stage,flow,windspeed,visibility,temperature from hydrologicdata";  Model-&setQuery(selectfromtable);  Model-&setHeaderData(0,Qt::Horizontal,tr("日期"));  Model-&setHeaderData(1,Qt::Horizontal,tr("测站"));  Model-&setHeaderData(2,Qt::Horizontal,tr("水位(m)"));  Model-&setHeaderData(3,Qt::Horizontal,tr("流量(m3/s)"));  Model-&setHeaderData(4,Qt::Horizontal,tr("风速"));  Model-&setHeaderData(5,Qt::Horizontal,tr("能见度"));  Model-&setHeaderData(6,Qt::Horizontal,tr("温度(℃)"));  while(Model-&canFetchMore())  {  Model-&fetchMore();  }  tableView-&setModel(Model);  QTableView::resizeRowsToContents();    }  改正后的结果如图3:  
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
职称考试题目
招生信息考研政治
网络安全安全设置工具使用手机安全
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&如何获取TableView表头的内容? - QTCN开发网 - Powered by phpwind
查看完整版本: [--
如何获取TableView表头的内容?
用QSqlQueryModel查询数据库,现在需要将内容导出,表头怎么取得?
你表头怎么设的?
没有手动设表头,只执行查询&&&&QueryDay = new QSqlQueryM&&&&&&&&QueryDay-&setQuery(&select * from t_data&,QSqlDatabase::database(DB-&connectionName()));&&&&&&&& tableView-&setModel(QueryDay); 都是数据表的内容&&&&&&&&
用model的headerData()方法获取。
感谢版主大人····省略一千字···· 跟我一样问题的兄弟就省点功夫吧···如果有的话QueryDay = new QSqlQueryMQueryDay-&setQuery(&select * from t_data&,QSqlDatabase::database(DB-&connectionName()));tableView-&setModel(QueryDay);·····QString Sfor (i=0;i&tableView-&model()-&columnCount();i++)&&&&{&&&&&&&&Stmp= tableView-&model()-&headerData(i,Qt::Horizontal,Qt::DisplayRole).toString();&&&&&&&&······&&}
QHeaderView *headerView = table-&horizontalHeader();&&&&headerView-&setStretchLastSection(true);这是我从QT的示例chart中看到的,但一直没有理解。只凭这两句如何获取到表头?
,这是本论坛个人作品展示中的一个作品,显示表头时也是用的上述方法,不知具体怎么一个细节?可否解释一下?
你看看源代码吧,我那个BPMS示例里表头是手工设置的,没有需求以获取表头字符串的。
查看完整版本: [--
Powered by
Gzip disabled

我要回帖

更多关于 setmodel 的文章

 

随机推荐