范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Qt开发模型视图设计模式(下)

  一、不同的视图显示同一个模型中的数据
  1、Qt中标准模型定义(例子中使用表格模型)
  (1)、获取 虚拟根节点
  (2)、动态从堆空间申请并 创建三个数据项
  (3)、分别往 三个数据项中放入数据
  (4)、 将数据项放到模型中
  MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H  #include  #include  #include  class MainWindow : public QMainWindow {     Q_OBJECT private:     QStandardItemModel m_standerdModel;     QTableView m_tableView;     void initStanderdModel();     void initTableModel(); public:     MainWindow(QWidget *parent = 0);     ~MainWindow(); };  #endif // MAINWINDOW_H
  MainWindow.cpp #include "MainWindow.h" #include   MainWindow::MainWindow(QWidget *parent)     : QMainWindow(parent) {     initStanderdModel();     initTableModel();     m_tableView.setModel(&m_standerdModel); } void MainWindow::initStanderdModel() {     QStandardItem* root = m_standerdModel.invisibleRootItem();     QStandardItem* itemA = new QStandardItem();     QStandardItem* itemB = new QStandardItem();     QStandardItem* itemC = new QStandardItem();      itemA->setData("A");//只是往数据项里面放了数据,并没有告诉如何显示     itemA->setData("Tip A");     itemA->setData("Help A");     itemB->setData("B");     itemB->setData("Tip B");     itemC->setData("C");     itemC->setData("Tip B");     itemC->setData("Help C");      root->setChild(0, 0, itemA);//itemA、itemB、itemC都是new出来的,这里将数据项     root->setChild(0, 1, itemB);//加入模型的同时也相当于指定了父组件,不会造成内存泄漏     root->setChild(1, 0, itemC);  } void MainWindow::initTableModel() {     m_tableView.resize(300,100);     m_tableView.move(10,10);     m_tableView.setParent(this); } MainWindow::~MainWindow() {      }
  main.cpp #include  #include "MainWindow.h"  int main(int argc, char *argv[]) {     QApplication a(argc, argv);     MainWindow w;     w.show();          return a.exec(); }
  二、Qt中的数据角色
  1、数据角色的概念
  (1)、模型中的数据 在视图中的用途(显示方式)可能不同
  (2)、 模型 必须为数据设置特定的数据角色(数据属性)
  (3)、数据角色用于 提示视图数据的作用( 直接显示、或者做其它用途 )
  (4)、数据角色是 不同视图以同一的风格显示数据的标准
  2、Qt中的数据角色定义
  3、数据角色的意义( 指导视图如何使用数据 )
  (1)、定义了数据 在特定系统下的标准用途
  (2)、不同的视图可以 通过相同的标准 显示数据
  (3)、注意
  A、数据角色只是一个 附加的属性, 这个属性代表推荐的数据显示方式
  B、不同的视图 完全可以自由解析或者忽略数据的角色信息 (自定义视图时)
  MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H  #include  #include  #include  #include  #include  class MainWindow : public QMainWindow {     Q_OBJECT private:     QStandardItemModel m_standerdModel;     QTableView m_tableView;     QTreeView m_treeView;     QListView m_listView;     void initStanderdModel();     void initTableModel(); public:     MainWindow(QWidget *parent = 0);     ~MainWindow(); };  #endif // MAINWINDOW_H
  MainWindow.cpp #include "MainWindow.h" #include   MainWindow::MainWindow(QWidget *parent)     : QMainWindow(parent, Qt::WindowContextHelpButtonHint) {     initStanderdModel();     initTableModel();     m_tableView.setModel(&m_standerdModel);     m_treeView.setModel(&m_standerdModel);     m_listView.setModel(&m_standerdModel); } void MainWindow::initStanderdModel() {     QStandardItem* root = m_standerdModel.invisibleRootItem();     QStandardItem* itemA = new QStandardItem();     QStandardItem* itemB = new QStandardItem();     QStandardItem* itemC = new QStandardItem();     QStandardItem* itemChild = new QStandardItem();      itemA->setData("A", Qt::DisplayRole);     itemA->setData("Tip A", Qt::ToolTipRole);     itemA->setData("Help A", Qt::WhatsThisRole);     itemB->setData("B", Qt::DisplayRole);     itemB->setData("Tip B", Qt::ToolTipRole);     itemC->setData("C", Qt::DisplayRole);     itemC->setData("Tip B", Qt::ToolTipRole);     itemC->setData("Help C", Qt::WhatsThisRole);      itemChild->setData("Child", Qt::DisplayRole);     itemChild->setData("Tip Child", Qt::ToolTipRole);     itemChild->setData("Help Child", Qt::WhatsThisRole);      itemC->setChild(0, 0, itemChild);       root->setChild(0, 0, itemA);//itemA、itemB、itemC都是new出来的,这里将数据项     root->setChild(0, 1, itemB);//加入模型的同时也相当于指定了父组件,不会造成内存泄漏     root->setChild(1, 0, itemC);  } void MainWindow::initTableModel() {     m_tableView.resize(300,100);     m_tableView.move(10,10);     m_tableView.setParent(this);      m_treeView.resize(300,100);     m_treeView.move(10,120);     m_treeView.setParent(this);      m_listView.resize(300,100);     m_listView.move(10,230);     m_listView.setParent(this); } MainWindow::~MainWindow() {      }
  main.cpp #include  #include "MainWindow.h"  int main(int argc, char *argv[]) {     QApplication a(argc, argv);     MainWindow w;     w.show();          return a.exec(); }
  三、小结
  (1)、模型中的数据 有附加的角色属性
  (2)、数据角色 定义了数据显示的标准方式
  (3)、数据角色用于 提示视图数据的作用
  (4)、视图可以 自由解析或者忽略数据的角色信息(自定义视图时) 
  【领QT开发教程 学习资料,点击下方链接莬费领取↓↓ ,先码住不迷路~】
  「链接」

中国贸易顺差再创纪录!拿走全球三分之一,都卖些啥?能挣到钱?当今世界,谁是世界第一制造业大国?谁是世界第一贸易大国?很多人不知道,这两个问题的答案,其实都是中国。2021年,中国对外贸易进口达到了2。68万亿,而出口额更多,直接达到了3。3突然失联,退休两年的他不保险了?一生转战保险界的万峰,却可能落下不保险的下场?作者隋坤近日,前新华保险总裁万峰失联的消息引发大量关注。去年11月初还与记者谈笑风生的万峰,却在当月底忽然失联。媒体前公司前同事同时联韧性成了达沃斯论坛高频词新华社瑞士达沃斯1月19日电(记者聂晓阳)联合国秘书长古特雷斯18日在世界经济论坛2023年年会上发表演讲说我们的世界在许多方面都受到一场完美风暴的困扰。论坛期间,不少嘉宾也表示,新年普通人如何登上胡润百富榜?小编声明本文均以胡润百富榜上公布的数据为数据源胡润百富榜单,本文以百富们的财富值为分析依据,论点仅为小编一家之言,仅供分享探讨。百富们也穷了官方数据显示,2022年我国GDP达12康美重整计划通过等于独董免责?广东青狮云岸律师事务所罗锦荣叶益力2021年11月12日,广州中院作出国内首宗特别代表人提起诉讼的证券虚假陈述责任纠纷一审判决(下称民事判决),判决康美药业赔偿证券投资者共计24。小米汽车进展到了哪里?雷军已经在跑冬季测试了2022年,小米虽然赚得不多,但也花了不少。2022年前三个季度,小米一直在大肆招人,相较于二季度,三季度仅员工薪酬开支就多了2亿元。以智能汽车领域为例,小米在半年的时间里新增了6省人大代表张立平将报告蓝图转化为武都区经济社会高质量发展的生动实践本网记者程健张兰琴高正武2023年甘肃省两会正在有序进行中,省人大代表张立平审议政府工作报告时说,报告总结成绩实事求是,工作部署符合实际,政府建设凸显实干,是一份求真务实突出重点,浙商财险被通报偿付能力数据不真实综合成本率高企致多年亏损银保监会通报浙商财险存在偿付能力数据不真实的问题。此外,公司综合成本率连续三季度超过100,累计亏损达1。47亿元。中国科技投资张婷龙秋月日前,银保监会发布关于四家保险公司偿付能力盘江电投天能公司高质量发展蹄疾步稳2022年,盘江电投天能公司夯基础创模式促改革谋发展,攻坚克难,勇毅前行,高质量发展迈出了坚实步伐。全年生产焦炭201。06万吨,实现营业收入68。3亿元,职工人均薪酬同比增加15兰州助剂厂股份有限公司正式揭牌1月18日,兰州助剂厂股份有限公司在兰州新区正式揭牌。此举标志着中国有机过氧化物第一厂兰州助剂厂已经顺利完成混合所有制改制,为企业上市奠定了基础。甘肃科技集团表示,将借助股改上市绿与Arceilk合资,惠而浦让出欧洲非洲及中东业务主导权路透社2023年1月17日消息,美国家电制造商惠而浦正在将欧洲的业务并入竞争对手土耳其Arcelik公司,以降低在欧洲市场的风险敞口。惠而浦表示,已同意将中东和非洲的业务出售给土耳
每天了解一位历史名人辜鸿铭辜鸿铭(1857年7月18日1928年4月30日),名汤生,字鸿铭,号立诚,自称慵人东西南北人,又别署为汉滨读易者冬烘先生,英文名字Tomson。祖籍福建省惠安县,生于南洋英属马来历史事件时间轴系列1秦朝建立及灭亡时间1秦始皇是公元前221年建立秦朝的。2秦朝(公元前221年公元前207年),是中国历史上一个极为重要的朝代,是由战国后期的秦国发展起来的中国历史上第一个大一统王朝。3秦国原是周朝的高通CEO亲口说的!苹果5G芯片即将问世郭明錤先用在SE4上财联社2月28日讯(编辑史正丞)在2023年世界移动通信大会开幕的第一天,高通CEO克里斯蒂亚诺阿蒙的一句话迅速成为舆论关注的焦点苹果自研5G芯片就快来了。根据现场聆听专访的科技行逆流而上!中国芯片日产突破10亿颗,新能源汽车出口再创新高不知不觉之间,风向真的变了,属于中国的高科技时代即将来临!包括美国法国英国德国在内的多个外国媒体,纷纷注意到中国高新科技正迎来新一轮爆发。美国华尔街日报曾报道称,中国将很快在科技领美亚马逊数码产品好价分享,3865元的SurfaceProX值得下手吗?本内容来源于什么值得买APP,观点仅代表作者本人作者tang251第一步关注我,和你分享各种优惠好价第一款Microsoft微软SurfaceProX13英寸Windows10平板德日美三国汽车争霸百年,中国新能源车十年磨一剑,飞凡汽车崛起风向变了,中国在汽车芯片领域有了新突破,凯龙高科宣布已经掌握重结晶碳化硅技术,成为国内首家掌握重结晶碳化硅技术的企业。凯龙高科证券部的员工回应媒体记者消息属实,这个材料的应用范围比杨国强辞任碧桂园董事局主席,杨惠妍接任南方房产频道记者注意到,碧桂园(02007。HK)3月1日早间发布公告,宣布董事局主席杨国强因年龄原因提出辞任,从3月1日起不再担任董事局主席及执行董事职务,杨国强辞任后将以特别顾比亚迪不错,但我选特斯拉!一文看懂比亚迪海豹与Model3比亚迪不错,但我选特斯拉,这句话出自于网友热门评论。比亚迪海豹的出世就是为了对标特斯拉的,而作为比亚迪外观最能打的比亚迪海豹,究竟能不能打败特斯拉呢?本场对决请出Model3与比亚关注美国造车新势力Lucid营收不及预期,2022年净亏损13亿美元文懂车帝原创刘艺伟懂车帝原创行业近日,美国造车新势力Lucid公司发布的最新财报显示,该公司2022年第四季度营收低于分析师预期。Lucid2022年净亏损13亿美元财报显示,20四川新希望集团以科技动力拼实业希望消费日报网讯(记者冯举白雪)今年是新希望创业第41个年头。40多年来,新希望一直坚守实体产业,一直坚持以农牧食品为主业,未来我们仍会一直坚持以农业实体作为主业毫不动摇,并且坚决做得特斯拉的孪生兄弟,法拉第未来,他真的来了都2023年了,贾跃亭还在造车,让我们来看看到底造得咋样。近日法拉第未来宣布,其旗舰产品FF91Futurist的开始生产(SOP)目标日期为2023年3月30日,将在该公司位于加