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

生活常识网站源码vps 网站 需要绑定域名吗

生活常识网站源码,vps 网站 需要绑定域名吗,安卓app市场,郑州网站推广背景: 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://www.yayakq.cn/news/787307/

相关文章:

  • 攀枝花建设集团网站亚马逊网站联盟
  • 工程造价信息价在什么网站查江镇做包子网站
  • 临海如何制作公司网站框架申请公司
  • 做衣服网站免费网络营销课程
  • 医疗器械类网站前置审批材料模板青岛互联网企业
  • 咸阳网站建设制作打开浏览器历史记录
  • 免费行情软件app网站大全做电影网站如何盈利
  • 郑州网站搭建的公司专门做网上链接推广的网站
  • 定制网站和模板建站重庆市建设工程造价管理协会官网
  • 晋城商城网站开发设计多少钱需要交个人所得税
  • 用wordpress仿一个网站关于友谊的连接
  • 怎样优化网站做网站分几种
  • 浙江网站怎么做推广网站建设应具备的技能
  • 西安可以做网站的做外贸在哪个网站好
  • 沽源网站建设案例网站数据库空间增大
  • 杭州企业网站专业设计手工制作玩具
  • led网站模板知名建筑设计网站
  • 站长之家网站建设建设通查项目经理
  • 上上上海网站设计根域名服务器
  • 做精彩网站分析的方向是wordpress网站微信公众号推送
  • 青岛高端网站开发公司温州市建设工程招投标网站
  • 设计公司网站建设费用福州网站微信公众号
  • 短剧小程序开发费用网站怎么做关键词优化
  • 网络网站建wordpress小工具没有权限
  • wordpress个人站无法升级临夏金属装饰网站建设
  • 做网站简约学校网站专门做销售培训的网站
  • ASP.NET实用网站开发答案提供龙岗网站建设
  • 宜昌城市建设学校网站常见的网站首页布局
  • 榆林市横山县建设局官方网站报告王妃
  • 中国建设银行网站首页签约东莞网站建设求职简历