专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Qt制作一个ListView列表

  一、概述
  案例:使用Qt制作一个ListView。点击ListView的Item可以用于测试OpenCV的各种效果
  自定义一个:MainListView继承QListWidget、MainListViewItem继承QListWidgetItem二、代码示例
  1。自定义QListWidget
  mainlistview。hclassMainListView:publicQListWidget{QOBJECTpublic:explicitMainListView(QWidgetparentnullptr);protected:voidmousePressEvent(QMouseEventevent);voidmouseReleaseEvent(QMouseEventevent);voidmouseMoveEvent(QMouseEventevent);voidleaveEvent(QEventevent);private:QPointstartPoint;MainListViewItemtheHighlightItemnullptr;MainListViewItemoldHighlightItemnullptr;MainListViewItemtheSelectedItemnullptr;MainListViewItemoldSelectedItemnullptr;Chapter3OptionoptionnewChapter3Option();signals:publicslots:voidupdateSelectedIcon();voidonMainItemClick(QListWidgetItemitem);};
  mainlistview。cppincludemainlistview。hMainListView::MainListView(QWidgetparent):QListWidget(parent){setMouseTracking(true);连接信号与槽函数,如果选中项发生变化则触发item图标的更新。都是当前对象发生connect(this,MainListView::itemSelectionChanged,this,MainListView::updateSelectedIcon);connect(this,MainListView::itemClicked,this,MainListView::onMainItemClick);}处理鼠标hove事件,item图标就变成hove状态briefMainListView::mouseMoveEventparameventvoidMainListView::mouseMoveEvent(QMouseEventevent){oldHighlightItemtheHighlightItem;theHighlightItemstaticcastMainListViewItem(itemAt(eventpos()));旧的hover的item图标回复原状(条件是该item没有被选中)新的hover的iten图标变成hover状态(条件是该item没有被选中)if(oldHighlightItem!theHighlightItem){if(oldHighlightItem!oldHighlightItemisSelected())oldHighlightItemsetIcon(oldHighlightItemmIcon);if(theHighlightItem!theHighlightItemisSelected())theHighlightItemsetIcon(theHighlightItemmIconHover);}}鼠标按下(这个可以当做item的点击事件,能够正常执行)briefMainListView::mousePressEventparameventvoidMainListView::mousePressEvent(QMouseEventevent){if(eventbuttons()Qt::LeftButton){startPointeventpos();MainListViewItemitemstaticcastMainListViewItem(itemAt(eventpos()));QStringfilePathQFileDialog::getOpenFileName(this,tr(选择视频),C:Userswei。yangDownloadsopencvres,tr(ImageFiles(。jpg。png)));constcharfileRealPathfilePath。toStdString()。cstr();将QString转换为charqDebug()itemtext()fileRealPathpos:itemmPos;switch(itemmPos){case1:显示原图optionshowSrcImage(fileRealPath);break;case2:像素取反optionpixleReverse(fileRealPath);break;case3:图像融合optionimageFuse(,);break;case4:调整图像亮度及对比度optionincreaseBrightnessContrastRatio(fileRealPath);break;case5:绘制线、矩形、椭圆、圆、多边形、文本optiondrawShape();break;case6:均值模糊:用于图像的降噪optionshowBlur(fileRealPath);break;case7:高斯模糊:用于图像的降噪,其对自然界的噪声有很好的抑制作用optionshowGaussianBlue(fileRealPath);break;case8:中值滤波:终止滤波用于图像的降噪,其对椒盐噪声有很好的抑制作用(黑白点)optionshowMediaBlur(fileRealPath);break;case9:双边滤波:其可以很好的保留边缘的同时对平坦区域进行降噪optionshowBilateralFilter(fileRealPath);break;case10:提起图像中的英文字母optionshowCleanImage(fileRealPath);break;case11:形态学开操作optionshowImageOpen(fileRealPath);break;case12:形态学闭操作optionshowImageClose(fileRealPath);break;case13:形态学梯度(基本梯度):膨胀减去腐蚀optionshowMorphologicalGradient(fileRealPath);break;case14:顶帽操作:相当于原图像与开操作之间的差值图像optionshowTopHat(fileRealPath);break;case15:黑帽操作:相当于原图像与闭操作之间的差值图像optionshowBlackHat(fileRealPath);break;case16:小案例:提取提取项目中的字母或者直线optionshowLines(fileRealPath,0);break;case17:上采样:利用拉普拉斯金字塔进行图像重建optionshowPyrUp(fileRealPath);break;case18:降采样:利用高斯金字塔进行降采样optionshowPyrDown(fileRealPath);break;case19:高斯不同:把同一张图片再不同的参数下做高斯模糊之后的结果相减,得到的输出图像称为高斯不同optionshowGaussianDiff(fileRealPath);break;case20:使用自定义卷积核filter2DoptionshowCustomKernelFilter2D(fileRealPath,1);break;case21:1。合并rebort和sobel的x方向梯度和y方向的梯度optionshowCustomKernelFilter2DMergeXY(fileRealPath);break;case22:填充图像边缘optionshowCopyMakeBorder(fileRealPath);break;case23:使用Sobel和Scharr计算图形梯度optionshowSobelAndScharr(fileRealPath);break;case24:使用拉普拉斯算子显示梯度图像optionshowLaplacian(fileRealPath);break;case25:边缘检测optionshowCanny(fileRealPath);break;}}}释放鼠标briefMainListView::mouseReleaseEventparameventvoidMainListView::mouseReleaseEvent(QMouseEventevent){如果鼠标释放位置和单击位置相距超过5像素,则不会触发item选中if((eventpos()startPoint)。manhattanLength()5)return;MainListViewItemitemstaticcastMainListViewItem(itemAt(eventpos()));setCurrentItem(item);}处理鼠标离开后,hover图标回复正常状态briefMainListView::leaveEventparameventvoidMainListView::leaveEvent(QEventevent){QUNUSED(event);oldHighlightItemtheHighlightItem;if(oldHighlightItem!oldHighlightItemisSelected())oldHighlightItemsetIcon(oldHighlightItemmIcon);oldHighlightItemtheHighlightItemnullptr;}voidMainListView::updateSelectedIcon(){oldSelectedItemtheSelectedItem;theSelectedItemstaticcastMainListViewItem(currentItem());之前被选中的item图标回复原样新被选中的item图标变成hover状态if(oldSelectedItem!theSelectedItem){if(oldSelectedItem)oldSelectedItemsetIcon(oldSelectedItemmIcon);if(theSelectedItem)theSelectedItemsetIcon(theSelectedItemmIconHover);}}这个槽函数并没有执行voidMainListView::onMainItemClick(QListWidgetItemitem){qDebug()点击了item的项目;}
  2。自定义QListWidgetItem
  mainlistviewitem。hclassMainListViewItem:publicQListWidgetItem{QOBJECT由于QListWidgetItem没有QObject属性,所以QOBJECT需要注释掉public:explicitMainListViewItem(QStringitemTitle,constQIconicon,constQIconiconHover,intpos,QListWidgetparentnullptr);设置item的图标briefsetItemIconparamiconparamiconHovervoidsetItemIcon(constQIconicon,constQIconiconHover);public:QIconmIcon;默认图标QIconmIconHover;选中时图标intmPos;第一个编辑signals:};
  mainlistviewitem。cppincludemainlistviewitem。h自定义主页ListView的Item项briefMainListViewItem::MainListViewItemparamparentMainListViewItem::MainListViewItem(QStringitemTitle,constQIconicon,constQIconiconHover,intpos,QListWidgetparent):QListWidgetItem(parent){setText(itemTitle);mIconicon;mIconHovericonHover;setIcon(mIcon);setSizeHint(QSize(360,47));mPospos;}
  3。使用voidMainWindow::createListView(QWidgetparent){listViewnewMainListView(this);listViewsetFocusPolicy(Qt::NoFocus);这样可禁用tab键和上下方向键并且除去复选框listViewsetFixedHeight(320);listViewsetFont(QFont(宋体,14,QFont::DemiBold));listViewsetFixedSize(QSize(360,480));listViewmove(0,menuBar()height());listViewsetStyleSheet({outline:0px;}除去复选框MainListViewItem{background:rgb(245,245,247);border:0px;margin:0px0px0px0px;}MainListViewItem::Item{height:40px;border:0px;paddingleft:14px;color:rgba(200,40,40,255);}MainListViewItem::Item:hover{color:rgba(40,40,200,255);}MainListViewItem::Item:selected{background:rgb(230,231,234);color:rgba(40,40,200,255);borderleft:4pxsolidrgb(180,0,0);}QListWidget::Item:selected:active{background:rgb(230,231,234);color:rgba(40,40,200,255);borderleft:4pxsolidrgb(180,0,0);});newMainListViewItem(显示原图,QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),1,listView);newMainListViewItem(tr(像素取反),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),2,listView);newMainListViewItem(tr(图像融合),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),3,listView);newMainListViewItem(tr(调整图像亮度及对比度),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),4,listView);newMainListViewItem(tr(绘制线、矩形、椭圆、圆、多边形、文本),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),5,listView);newMainListViewItem(tr(均值模糊),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),6,listView);newMainListViewItem(tr(高斯模糊),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),7,listView);newMainListViewItem(tr(中值滤波),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),8,listView);newMainListViewItem(tr(双边滤波),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),9,listView);newMainListViewItem(tr(提取图像中的英文字母),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),10,listView);newMainListViewItem(tr(形态学开操作),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),11,listView);newMainListViewItem(tr(形态学闭操作),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),12,listView);newMainListViewItem(tr(形态学梯度(基本梯度)),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),13,listView);newMainListViewItem(tr(顶帽操作),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),14,listView);newMainListViewItem(tr(黑帽操作),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),15,listView);newMainListViewItem(tr(小案例:提取提取项目中的字母或者直线),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),16,listView);newMainListViewItem(tr(上采样),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),17,listView);newMainListViewItem(tr(降采样),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),18,listView);newMainListViewItem(tr(高斯不同),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),19,listView);newMainListViewItem(tr(使用自定义卷积核filter2D),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),20,listView);newMainListViewItem(tr(合并rebort及Sobel的x方向梯度和y方向的梯度),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),21,listView);newMainListViewItem(tr(填充图像边缘),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),22,listView);newMainListViewItem(tr(使用Sobel和Scharr计算图形梯度),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),23,listView);newMainListViewItem(tr(使用拉普拉斯算子显示梯度图像),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),24,listView);newMainListViewItem(tr(边缘检测),QIcon(:resiconmainlist。png),QIcon(:resiconmainlist。png),25,listView);connect(listView,MainListView::itemClicked,listView,MainListView::onMainItemClick);}最后一步:创建ListView,然后运行就行了createListView(this);
  三、图片演示
  原文链接:Qt制作一个ListView列表QT开发中文网

裸车67万的国产车哪种性价比最高?我向你推荐奇瑞艾瑞泽5对于奇瑞来说,艾瑞泽5绝对是一款明星的轿车。在上市之初非常有亮点,大气漂亮配置丰富空间充足,一度让它成为奇瑞汽车的销量担当,月销量曾多达两万多辆,可谓人气口碑为什么现在的行车记录仪都是安装在前挡风玻璃上,而不是装在更靠后一点的位置呢?1行车记录仪最佳位置讲解行车记录仪是一种新出现的车载安全产品,之所以如此火爆可以说是社会上发生的几起关乎道德的道路安全事故引起的。广大车主为了保护自身的利益不得不求助于可以记录驾驶除夕夜适合吃什么馅的饺子?现在不怎么讲究吃饺子的寓意,喜欢吃什么馅的饺子,就包什么馅吃。过去,人们在过年时,除夕夜吃什么馅的饺子,是有讲究的。譬如说,吃萝卜馅饺子,寓意有福吃白菜馅饺子,寓意百财吃驴肉馅饺子当年我们玩过的红白机游戏,游戏的封面都是什么样子的呢?当年我们玩的红白机游戏,卡带包装上面的图片可以说是从来没有和内容有一致的,因为红白机是8位机,实际游戏的色彩有限,画面也比较简单,作为封面的话吸引力不太够,下面我就给大家看几个小时沉迷游戏拒绝上学,家长该如何帮助孩子戒掉网瘾?打骂是无法叫醒一个游戏上瘾的孩子的,还是要触及他的内心,不妨看完这篇文章,让孩子对职业电竞有个基本的了解,自我反省一下,是不是玩游戏的材料,早日回头。一个沉迷游戏三年的孩子,自述如吃鸡游戏里有哪些不建议普通或者萌新玩家使用的枪械?霰弹枪霰弹枪是吃鸡游戏里单发伤害最高的枪械,就连栓狙里的AWM都不能和它相提并论。一发霰弹枪一共有9颗弹丸,每颗弹丸的伤害为26点,所以一发霰弹枪的总伤害就是234点M16步枪M1马布里的能力在NBA球史上的排名如何?排在什么位置?马布里在CBA取得了巨大的成就,他是北京男篮的功臣,也是CBA历史上最佳外援,如果CBA搞一个历史排名的话,马布里一定名列前茅。但是在NBA马布里其实挺并没有很亮眼,他只是普通的是九号电动车和雅迪的选哪个?两种产品都有很多优点,缺点也是有的。但你能提出这样的问题肯定说明一些问题,比如你关注九号电动车这样的互联网产品,对九号电动车这种新牌子有兴趣,那你就去对比参数看看谁家更好呗。在技术个人感觉vivo手机同样的配置比小米的要流畅,大家同意吗?看到这句话很多网友都不屑一顾,同配置的vivo手机和小米手机价格能一样么?要搁以前可能还不好说,但要说现在,那iQOO真不怵小米,不管是堆配置还是比价格,iQOO都来者不拒。一句话魔兽世界怀旧服中能否多开升级,比如五开元素萨,多开会不会导致封号?多开玩法在魔兽世界中一直都有,然而随着魔兽世界PVP玩法渐渐没落,现如今已经很少有人会选择多开了。而在即将开放的怀旧服中,显然让喜欢多开的玩家又有了一次多开秒人的机会。在魔兽世界6中国足球哪个地方的球市最好?毫无疑问,最据足球气息的还是广州,至少前十年都是!广州是名副其实的足球城。中国足球联赛前几年年发展还是不错的,由于经济原因如今也是风雨飘摇!本人比较认同这十大球市最好的城市10青岛
暗黑破坏神不朽版本更新!带来新玩法新惊喜暗黑破坏神不朽承袭自延续25年的暗黑大IP,在今年下半年登陆国服!因其宏大的世界观和完整的故事线,受到了广大玩家的好评!2022年11月9日,暗黑破坏神不朽在这个初冬开启了版本更新QQ飞车手游公主装扮,宛如天上走下的仙女QQ飞车手游里不少女性玩家都喜欢把自己的角色打扮得漂漂亮亮的,他们有的像是骄傲的女王,有的宛如甜美的小姑娘,今天小编就来教你公主穿搭,这些套装保证你的角色就像天上下凡的仙女一样美丽吕布火焰fmvp上线时间确定,赵云重做特效帅哭,孙悟空玩家笑了可乐要加冰,乔妹在你心,大家好我是小乔妹,每天为您分享有趣的王者荣耀新皮肤新版本,最新攻略等文章内容。王者荣耀随着项羽职棒王牌优化重做完成后,和项羽职棒王牌一个系列的限定史诗皮肤赵医生揭晓9种令人羡慕的体质,不妨对照看看,你是否拥有?体质,是由先天遗传和后天获得所形成的,人类个体在形态结构和功能活动方面所固有的相对稳定的特性,与心理性格具有相关性。个体体质的不同,表现为在生理状态下对外界刺激的反应和适应上的某些小脑萎缩是什么?严重吗?大家一起来看看吧小脑萎缩是什么?严重吗?大家一起来看看吧你好,你知道小脑萎缩吗?小脑萎缩是一种慢性病进展性疾病,暂时没有好的治愈方法,但可以控制。准确地说,小脑萎缩不是疾病,也可以说是神经影像学的吃姜不去皮,吃错一生疾?生姜究竟要不要去皮?告诉你答案导语在我们的日常生活里,我们是离不开生姜的,不管是煲汤还是炒菜,生姜都属于是非常重要的调味品,但是大家在吃生姜的时候,到底是去皮还是不去皮呢?或许很多人在日常生活里经常听老一辈的说中超积分榜三镇守住榜首梅州客家让二追三绝杀河南浙江跻身前四北京时间11月8日,中超联赛第24轮继续角逐,剩余比赛全部战罢,最新战况积分榜武汉三镇20完胜北京国安,邓涵文推射破门,埃德米尔森点射命中。因泰山在先赛的情况下登顶,三镇本场唯有全英锦赛第三轮比赛结束中国7人进最后决战,丁俊晖62塔猜亚北京时间11月8日凌晨,斯诺克英锦赛资格赛第三轮比赛全部结束,在这个比赛日,中国共有13人出战,最终仅有5人晋级资格赛最后决战,让我们看一下在这个比赛日出场的15位中国选手的比赛赛林高远王曼昱苦战5局,32险胜世界冠军!鳗鱼带伤,冲击决赛席位林高远王曼昱苦战5局,32险胜世界冠军!鳗鱼带伤,冲击决赛席位。2022年乒乓球全国锦标赛继续进行,林高远王曼昱险胜以30横扫曾蓓勋李雨琪,以32险胜王艺迪于子洋,成功闯进4强,接魔兽霍华德最后一舞在中国赛事速递巴西26人世界杯大名单公布11月8日,巴西队主帅蒂特公布了参加卡塔尔世界杯的26人名单,桑巴军团也成为继日本队和哥斯达黎加之后,第三支敲定参赛球员的国家队。然而,大名单由2五月的老文字,一声叹息我火今夏面临一次重大建队方向选择,是就地拔起还是再蛰伏一季?分头来看,如果是再蛰伏一季,现有的教练团队挣前三顺位的能力还是有保障的,保留塞拉斯前提下还是要求继续为垫底努力的同时,要
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网