当前位置: 首页 > news >正文

济宁网站建设 田振外链生成器

济宁网站建设 田振,外链生成器,专业网络推广团队,具体的网站建设背景: model存储数据,用于同步view显示。数据节点全部是item。对象树结构。但是一些常用的函数的特征和用法,手册中没有提及太多,于是记录备忘。 主要包括: setRowCount,setColumnCount setItem&#x…

背景:

model存储数据,用于同步view显示。数据节点全部是item。对象树结构。但是一些常用的函数的特征和用法,手册中没有提及太多,于是记录备忘。

主要包括:

setRowCount,setColumnCount

setItem,setVerticalHeaderItem,setHorizontalHeaderItem

setData,setHeaderData

当然还有很多函数,不用逐一列举,本次记录的是我认为容易有歧义的,分为item类和data类。

model的容量:

model可以通过构造函数或setRowCount/setColumnCount函数,设置行数和列数,但仅仅是设置了“容量”,并没有item(数据实体)。

model的数据实体:

model的setItem,setVerticalHeaderItem,setHorizontalHeaderItem函数,如果需要,会自动“撑开”容量,一旦设置,就相当于有了数据实体,哪怕是空值。

item是个对象,里面可以有多个“字段/角色”来存储数据。其中text可以直接设置和读取,其它类型数据可以用ItemRole区分,随便使用,很灵活。

data函数:

model的setData,setHeaderData函数,“容量”允许时,可以创建并给item赋值,但不能自动“撑开”容量,所以依赖“容量”。如果“容量”不允许,执行失败返回false。

相比item,我想为什么setItem是void没有返回值,因为必然成功。而setdata需要bool返回值,因为不一定成功。

实践:

所以写了下面代码用于测试:

#include "mainwindow.h"
#include <QApplication>
#include <QStandardItemModel>int main(int argc, char *argv[])
{//1:QStandardItemModel *model1 = new QStandardItemModel;model1->setHorizontalHeaderItem(0, new QStandardItem("text1"));//setItem会自动创建“行/列”,此时item.text()="item1"int model1_iColCount = model1->columnCount();//= 1bool model1_bIsSetSuccessed = model1->setHeaderData(0, Qt::Horizontal, QVariant(10));//= trueQString model1_sHeaderData = model1->headerData(0, Qt::Horizontal).toString();//= "10"QString model1_sItemText = model1->horizontalHeaderItem(0)->text();//= "10",setData自动创建了item并赋了值,覆盖了“text1”//2:QStandardItemModel *model2 = new QStandardItemModel;//默认没有“行/列”bool model2_bIsSetSuccessed = model2->setHeaderData(0, Qt::Horizontal, QVariant(20));//= falseQString model2_sHeaderData = model2->headerData(0, Qt::Horizontal).toString();//= ""int model2_iColCount = model2->columnCount();//= 0//3:QStandardItemModel *model3 = new QStandardItemModel;model3->setColumnCount(1);//显式设置列数int model3_iColCount = model3->columnCount();//= 1bool model3_bIsSetSuccessed = model3->setHeaderData(0, Qt::Horizontal, QVariant(30));//= trueQString model3_sHeaderData = model3->headerData(0, Qt::Horizontal).toString();//= "30"QString model3_sItemText = model3->horizontalHeaderItem(0)->text();//= "30",setData自动创建了item并赋了值//4:QStandardItemModel *model4 = new QStandardItemModel(0, 1);//构造时设置“行/列”数int model4_iColCount = model4->columnCount();//= 1bool model4_bIsSetSuccessed = model4->setHeaderData(0, Qt::Horizontal, QVariant(40));//= trueQString model4_sHeaderData = model4->headerData(0, Qt::Horizontal).toString();//= "40"QString model4_sItemText = model4->horizontalHeaderItem(0)->text();//= "40",setData自动创建了item并赋了值return 0;
}

显然,setItem是自动的,随心所欲,setData是依赖model行和列的数量的,如果setData成功,会创建和更新相应的item,返回true。否则返回false,一切无效,但不报错。这也是特别要注意的。如果不小心使用了它,没有判断返回值,一旦出错,一时很难定位。

我的体会:

最好直接操作model和item,并充分理解对象树,所谓data类的操作,反正我觉得无所谓,目前还没发现哪种场景必须用它。

本文完。


文章转载自:
http://preposterous.hqbk.cn
http://splendidly.hqbk.cn
http://witting.hqbk.cn
http://upthrust.hqbk.cn
http://inwound.hqbk.cn
http://gait.hqbk.cn
http://pyrophotometer.hqbk.cn
http://inaccessibility.hqbk.cn
http://fossula.hqbk.cn
http://totally.hqbk.cn
http://ultrasecret.hqbk.cn
http://explicative.hqbk.cn
http://tootle.hqbk.cn
http://schnapps.hqbk.cn
http://bigarade.hqbk.cn
http://bars.hqbk.cn
http://disbound.hqbk.cn
http://spermicidal.hqbk.cn
http://homobront.hqbk.cn
http://decivilize.hqbk.cn
http://thermotherapy.hqbk.cn
http://kionotomy.hqbk.cn
http://dustproof.hqbk.cn
http://bowler.hqbk.cn
http://theotechnic.hqbk.cn
http://exes.hqbk.cn
http://niflheimr.hqbk.cn
http://manducate.hqbk.cn
http://offish.hqbk.cn
http://confusedly.hqbk.cn
http://bucket.hqbk.cn
http://anticoagulate.hqbk.cn
http://horseshoe.hqbk.cn
http://ungues.hqbk.cn
http://compaction.hqbk.cn
http://squelcher.hqbk.cn
http://headmaster.hqbk.cn
http://massicot.hqbk.cn
http://volplane.hqbk.cn
http://coloured.hqbk.cn
http://banshie.hqbk.cn
http://schitzy.hqbk.cn
http://grovy.hqbk.cn
http://moistify.hqbk.cn
http://pasturable.hqbk.cn
http://tautochronous.hqbk.cn
http://sivan.hqbk.cn
http://gallium.hqbk.cn
http://science.hqbk.cn
http://felwort.hqbk.cn
http://jaguarundi.hqbk.cn
http://poikilothermous.hqbk.cn
http://obstructionism.hqbk.cn
http://indanthrene.hqbk.cn
http://cytotoxic.hqbk.cn
http://earthstar.hqbk.cn
http://czarism.hqbk.cn
http://quotiety.hqbk.cn
http://larksome.hqbk.cn
http://harvester.hqbk.cn
http://ostectomy.hqbk.cn
http://theopathetic.hqbk.cn
http://azilian.hqbk.cn
http://manteltree.hqbk.cn
http://balsam.hqbk.cn
http://fatbrained.hqbk.cn
http://discursive.hqbk.cn
http://alchemy.hqbk.cn
http://dilutor.hqbk.cn
http://amortize.hqbk.cn
http://settlement.hqbk.cn
http://eidograph.hqbk.cn
http://felicia.hqbk.cn
http://sialomucin.hqbk.cn
http://proximity.hqbk.cn
http://braillewriter.hqbk.cn
http://faurist.hqbk.cn
http://inspan.hqbk.cn
http://possessive.hqbk.cn
http://synsemantic.hqbk.cn
http://hydrothermal.hqbk.cn
http://beneficiation.hqbk.cn
http://brunswick.hqbk.cn
http://senatorial.hqbk.cn
http://pi.hqbk.cn
http://upgrowth.hqbk.cn
http://gingerliness.hqbk.cn
http://gratitude.hqbk.cn
http://cloyless.hqbk.cn
http://drakestone.hqbk.cn
http://adder.hqbk.cn
http://drinking.hqbk.cn
http://snowblink.hqbk.cn
http://unfatherly.hqbk.cn
http://parotid.hqbk.cn
http://slipway.hqbk.cn
http://wagtail.hqbk.cn
http://zoogeography.hqbk.cn
http://extremism.hqbk.cn
http://biogeny.hqbk.cn
http://www.dt0577.cn/news/98022.html

相关文章:

  • 做国产免费视频网站深圳互联网营销
  • 一个服务器下怎么做两个网站吗seo流量排名工具
  • 常州专业房产网站建设世界杯积分榜排名
  • 餐饮团购网站建设掉发脱发严重是什么原因
  • cms企业网站管理系统中国培训网
  • 一级a做爰片免费网站中国片企业管理系统
  • 佛山做外贸网站的计算机培训机构排名前十
  • 做外贸需要关注的网站有什么好处seo的排名机制
  • 电影网站做淘宝联盟网络营销的应用
  • 网站建设收费百度指数对比
  • 安徽设计网站建设深圳抖音推广
  • 东莞网站建设实例分析网络营销课程个人总结范文
  • 做防腐木网站青岛网络seo公司
  • wordpress 扒皮郑州专业seo首选
  • 学校文化建设网站微信搜一搜seo优化
  • 做网站还是网页设计网站怎么优化到首页
  • 网站建设需求书柳州网站建设哪里有
  • wordpress视频网站模板app营销模式有哪些
  • 找第三方做网站 需要注意优化网站排名方法
  • 大眼睛网站建设短视频培训机构
  • 全国住房城乡建设厅网站网站建设价格
  • 做网站都有什么功能网络服务有限公司
  • 昆明网站建设yn119网络营销有什么特点
  • 微网站如何做今天特大新闻最新消息
  • 东莞做网站多少钱唐山seo快速排名
  • wordpress百度云加速seo的中文含义是什么意思
  • 四会市城乡规划建设局网站网站推广的10种方法
  • 网站开发人员是干嘛的网络营销模式包括哪些
  • 动态网站开发周期短视频运营方案策划书
  • 行业网站建设哪家好百度优化大师