保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

QAbstractTableModel读取数据以及QStyl

  使用QStyleItemDelegate修改数据,官网有QSpinBox例子,这里使用QComboBox
  h头文件ClassClassMaterDelegate:publicQStyleItemDelegate{QOBJECTpublic:ClassMaterDelegate(QObjectparentnullptr);ClassMaterDelegate();QWidgetcreateEditor(QWidgetparent,constQStyleOptionViewItemoption,constQModelIndexindex)constoverride;voidsetEditorData(QWidgeteditor,constQModelIndexindex)constoverride;voidsetModelData(QWidgeteditor,QAbstractItemModelmodel,constQModelIndexindex)constoverride;};
  cpp实现文件ClassMaterDelegate::ClassMaterDelegate(QObjectparent):QStyleItemDelegate(parent){}ClassMaterDelegate::ClassMaterDelegate(){}QWidgetClassMaterDelegate::createEditor(QWidgetparent,constQStyleOptionViewItemoption,constQModelIndexindex)const{if(!index。isValid()){returnQStyleItemDelegate::createEditor(parent,option,index);}QComboBoxpComboBoxnewQComboBox(parent);std::vectorClassMaterclassMatersClassMater::GetAll();for(autoitclassMaters。begin();it!classMaters。end();it){pComboBoxaddItem(itgetName(),itgetId());}returnpComboBox;}voidClassMaterDelegate::setEditorData(QWidgeteditor,constQModelIndexindex)const{if(!index。isValid()){return;}QStringqtrNameindex。model()data(index,Qt::EditRole)。toString();QComboBoxpComboBoxstaticcastQComboBox(editor);intcmbIndexpComboBoxfindText(qtrName);pComboBoxsetCurrentIndex(cmbIndex);}voidClassMaterDelegate::setModelData(QWidgeteditor,QAbstractItemModelmodel,constQModelIndexindex)const{if(!index。isValid()){return;}QComboBoxpComboBoxstaticcastQComboBox(editor);QStringqtrNamepComboBoxcurrentText();modelsetData(index,qtrName,Qt::EditRole);}
  使用QAbstractTableModel读取和修改数据
  h头文件classStudentModel:publicQAbstractTableModel{public:StudentModel(Qobjectparentnullptr);StudentModel();voidgetAll();constStudentgetOne(introw)const;voidaddStudent();voiddeleteStudent(introw);introwCount(constQModelIndexparentQModelIndex())constoverride;intcolumnCount(constQModelIndexparentQModelIndex())constoverride;QVariantdata(constQModelIndexindex,introleQt::DisplayRole)constoverride;QVariantheaderData(intsection,Qt::Orientationorientation,introleQt::DisplayRole)constoverride;boolsetData(constQModelIndexindex,constQVariantvalue,introleQt::EditRole)override;Qt::ItemFlagsflags(constQModelIndexindex)constoverride;private:std::vectorQStringvecStrHeaders{姓名,班级,年龄};std::vectorStudentvecStudents;};
  cpp实现文件StudentModel::StudentModel(Qobjectparent):QAbstractTableModel(parent){}StudentModel::StudentModel{}StudentModel::voidgetAll(){beginResetModel();vecStudentsStudent::getAll();endResetModel();}constStudentStudentModel::getOne(introw)const{constStudentstuvecStudents〔row〕;returnstu;}voidStudentModel::addStudent(){Studentstu;stu。setName(test)stu。setClassMater(1);stu。setAge(18);if(!Student::add(stu)){return;}beginInsertRows(QModelIndex(),0,0);vecStudents。insert(vecStudents。begin(),stu);endInsertRows();}voidStudentModel::deleteStudent(introw){constStudentstuvecStudents〔row〕;if(!Student::delete(stu。getId())){return;}autoitvecStudents。begin();std::advance(it,row);beginRemoveRows(QModelIndex(),row,row);vecStudents。erase(it);endRemoveRows();}intStudentModel::rowCount(constQModelIndexparentQModelIndex())const{returnvecStudents。size();}intStudentModel::columnCount(constQModelIndexparentQModelIndex())const{returnvecStrHeaders。size();}QVariantStudentModel::data(constQModelIndexindex,introle)const{if(!index。isValid()){returnQVariant();}if(roleQt::DisplayRoleroleQt::EditRole){constStudentstuvecStudents〔index。row()〕;switch(index。column()){case0:returnstu。getName();case1:returnstu。getClassMater();case2:returnsty。getAge();default:returnQVariant();}}returnQVariant();}QVariantStudentModel::headerData(intsection,Qt::Orientationorientation,introleQt::DisplayRole)const{if(!index。isValid()){returnQVariant();}if(roleQt::DisplayRole){if(orientationQt::Horizontal){returnvecStrHeaders〔section〕;}}returnQVariant();}boolStudentModel::setData(constQModelIndexindex,constQVariantvalue,introleQt::EditRole){if(!index。isValid()){returnQVariant();}if(index。column()1roleQt::EditRole){ClassMaterclassMater;boolsuccessClassMater::getByName(value。toString(),classMater);if(!success){returnfalse;}StudentstuvecStudents〔index。row()〕;stu。setClassMater(classMater。getId());boolhasSaveStudent::update(stu);if(hasSave){thisgetAll();}returnhasSave;}returnfalse;}Qt::ItemFlagsStudentModel::flags(constQModelIndexindex)const{if(!index。isValid()){returnQVariant();}if(index。column()1){returnQt::ItemIsSelectableQt::ItemIsEditableQt::ItemIsEnabled;}returnQt::ItemIsSelectableQt::ItemIsEnabled;}
  使用uistudentListsetItemDelegateForColumn(1,newClassMaterDelegate(this));uistudentListsetModel(mModel);头文件定义StudentModelmModel;设置最后一列自适应uistudentListhorizontalHeader()setStretchLastSection(true);设置选择的行为:选择整行uistudentListsetSelectionBehavior(QAbstractItemView::SelectRows);设置选择的模式:单选模式,即只能选中一行uistudentListsetSelectionMode(QAbstractItemView::SingleSelection);

关于这次疫情的作文1000字三篇这个春节,相比以往有些不同之处。新型冠状病毒的传播,让整个华夏大地被疫情覆盖,让人们多了几分谨慎与恐慌。下面是小编收集整理的关于疫情的作文1000字,欢迎阅读参考!关于疫情的作……小学生观察蚂蚁的作文500字汇编7篇在平日的学习、工作和生活里,大家一定都接触过作文吧,根据写作命题的特点,作文可以分为命题作文和非命题作文。一篇什么样的作文才能称之为优秀作文呢?以下是小编整理的小学生观察蚂蚁的……小学生作文横店游记叮铃铃床头的闹钟已经响起来了,我睁开朦胧的双眼,4点半了,想起今天是我们全家去外地游玩的日子,于是我和我的表弟准时起床了。早晨5点15分,我们从家门口的黄金海岸广场旅游车出发了……莎士比亚名言英文healthbecauseshewasbeautiful,theyweremenpursuedbecausesheisawoman,menwerecaptured。shakes……关于做最好的自己作文四篇做好每一件事,用快乐的心态去面对,去做一件令自己满意的事,努力做自己,那就是最好的自己。下面是小编为大家整理的做最好的自己作文,仅供参考,欢迎大家阅读。关于做最好的自己作文一……校园里的一处风景作文每个同学都有自己的校园,那么你们的校园是什么样子的呢?在此,小编为大家准备好了校园里的一处风景作文,一起来学习吧!篇【1】:校园里的一处风景作文我们校园的景物可多了。教学……工信部全年推动完成60万个5G基站建设中新财经4月19日电工业和信息化部新闻发言人、信息通信管理局局长赵志国在19日的发布会上表示,下一步,工业和信息化部将深入贯彻落实《政府工作报告》等部署要求,加强统筹谋划和协同……心若向阳不惧悲伤作文500字曾经有两个人同时得了癌症,只剩下最后三个月时间,一个是一位六十多岁的老太太,另一个是一个正值人生美好年华的年轻女性。当她们二人查出癌症后,那个老太太依然很开心,认真的过着每一天……好玩的活动万圣节前夜作文350字昨天,我的英语班开了一次聚会,我邀请了尹菲和我放学一起去参加。我们刚去到哪儿,看到那里有一堆各式各样的面具,有紫色的,有橙色的,有粉色的,有白色的我们选了自己喜欢的面具,……中秋节征文我的思念E度网专稿未经允许不得转载思念没有年轮,用我满腔的真诚揽住回忆的丝线,用那月亮,照亮那思念的路hellip;hellip;我的思念寄存在月亮上,那明亮的月亮上的污垢……加速消费级XR时代到来雷鸟布局140英寸高清巨幕智能眼镜本报记者贾丽随着5GAI时代的到来和元宇宙概念的爆火,近年来的XR行业开始重回风口。多位业内人士一致认为,中国XR行业的拐点已经到来,XR行业即将进入大规模应用阶段,其技……在记忆深处的花朵我家有一盆兰花,那是母亲给买的,放在院子里。每到花开时节,香飘满屋,来我家做客的亲戚都夸花香,花美。但是,它们都不知花虽美,绿叶更美,没有绿叶的衬托,花就显得单调,在风雨……
我的探索梦也许你会问我,以后长大想干什么?是穿着白大褂每天治病救人?还是穿着警服,抓坏人?错!都不是!我的梦想是长大以后做一位科学家,探索人类的未解之谜!开学几个星期,我上学期定的……我与时间赛跑四年级作文600字看到这个题目,你一定觉得惊讶吧!因为自古就有人说:光阴似箭、日月如梭,那谈何与时间赛跑呢?其实,与时间赛跑的真正用意是:争分夺秒地学习,不要把这宝贵的时间浪费在无聊的游戏上。俗……冷漠的弃少他一出生就和别人不一样,他长得很柔弱那样,他的家族是以习武为主的,而他长大肯定,不是习武的料,所以在他后来的14年中,他的父亲没有再多的陪着她,他们是龙氏家族,而他是龙家家主的……六年级除夕夜作文篇一在轰轰隆隆的鞭炮声中,让我盼来了期待已久的春节联欢晚会。桌子上的鸡鸭鱼肉与其他的美味佳肴,飘淡着鼠年即将来领的喜庆,漂浮着一年的血汗与辛劳,洋溢着在学习中奋斗出来的欢……高一叙事作文虚惊一场这件事发生在三年级的时候,有一天课间休息时,我正玩得开心,突然有一个同学气喘吁吁的跑来我跟前对我说:老师叫你去办公室找她。我一听,吓得我脸色苍白,心想:完了完了完了!难道……C定义使用函数对象的算法,理解函数对象如何作用于迭代器定义一个对容器全部元素执行某种算术运算的算法,使用的某种算术运算使用函数指针或函数对象来定义,全部元素的遍历使用迭代器。实质就是对STL算法accumulate的模拟实现,该算……实现细胞内蛋白质静电相互作用直接测量近日,中科院青岛生物能源与过程研究所研究员姚礼山带领的蛋白质设计研究组,在细胞内原位定量测量蛋白质静电相互作用取得重要进展。相关研究近日发表于《美国化学会志》。静电相互作……成长需要挑战在我们成长过程中,一定要勇于挑战,只有勇于挑战,才是真正的成长。或许,有的人从小就在爸爸妈妈的宠爱下长大,没有挑战。其实生活,只是一个简简单单的过程,从来没有接受挑战,从……照片让我回忆人为什么要拍照?为的是要留下那曾经的曾经,将过去留到未来,慢慢地、细细地品尝,品尝过去的精华,品尝过去的美好,品尝过去所有的点点滴滴。就像牛吃青草,会反刍一样。一张照片,……倾听大自然的声音初一作文要说世界上最伟大的演奏家,非大自然莫属。她演奏的乐曲美妙动听,当然,我们得用心灵去倾听。今天我陪奶奶去采茶。可只一会儿,我就不耐烦了,独自跑到了盛开蒲公英的草地上。张着大……精彩800字作文20年后回故乡导语:故乡,是生我们养我们的地方,现在的它还是那么平凡,20年后的它会是什么样子的呢?能想象吗?一起跟着小编的脚步,来看看20年后的回故乡是什么样的。下面是小编整理的,欢迎大家……军训留给我阴影作文军训会很辛苦,但是你要坚持下去!这是父亲在军训前留给我的话语。而我却不以为然,军训有什么大不了的?而当我正式开始第一天军训时,我才体会到军训的恐怖时间像奔跑的小马车,一转……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网