城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

Qt制作一个ListView列表

9月13日 终离去投稿
  一、概述
  案例:使用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:QPointstartPMainListViewItemtheHighlightIMainListViewItemoldHighlightIMainListViewItemtheSelectedIMainListViewItemoldSelectedIChapter3OptionoptionnewChapter3Option();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){oldHighlightItemtheHighlightItheHighlightItemstaticcastMainListViewItem(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:itemmPswitch(itemmPos){case1:显示原图optionshowSrcImage(fileRealPath);case2:像素取反optionpixleReverse(fileRealPath);case3:图像融合optionimageFuse(,);case4:调整图像亮度及对比度optionincreaseBrightnessContrastRatio(fileRealPath);case5:绘制线、矩形、椭圆、圆、多边形、文本optiondrawShape();case6:均值模糊:用于图像的降噪optionshowBlur(fileRealPath);case7:高斯模糊:用于图像的降噪,其对自然界的噪声有很好的抑制作用optionshowGaussianBlue(fileRealPath);case8:中值滤波:终止滤波用于图像的降噪,其对椒盐噪声有很好的抑制作用(黑白点)optionshowMediaBlur(fileRealPath);case9:双边滤波:其可以很好的保留边缘的同时对平坦区域进行降噪optionshowBilateralFilter(fileRealPath);case10:提起图像中的英文字母optionshowCleanImage(fileRealPath);case11:形态学开操作optionshowImageOpen(fileRealPath);case12:形态学闭操作optionshowImageClose(fileRealPath);case13:形态学梯度(基本梯度):膨胀减去腐蚀optionshowMorphologicalGradient(fileRealPath);case14:顶帽操作:相当于原图像与开操作之间的差值图像optionshowTopHat(fileRealPath);case15:黑帽操作:相当于原图像与闭操作之间的差值图像optionshowBlackHat(fileRealPath);case16:小案例:提取提取项目中的字母或者直线optionshowLines(fileRealPath,0);case17:上采样:利用拉普拉斯金字塔进行图像重建optionshowPyrUp(fileRealPath);case18:降采样:利用高斯金字塔进行降采样optionshowPyrDown(fileRealPath);case19:高斯不同:把同一张图片再不同的参数下做高斯模糊之后的结果相减,得到的输出图像称为高斯不同optionshowGaussianDiff(fileRealPath);case20:使用自定义卷积核filter2DoptionshowCustomKernelFilter2D(fileRealPath,1);case21:1。合并rebort和sobel的x方向梯度和y方向的梯度optionshowCustomKernelFilter2DMergeXY(fileRealPath);case22:填充图像边缘optionshowCopyMakeBorder(fileRealPath);case23:使用Sobel和Scharr计算图形梯度optionshowSobelAndScharr(fileRealPath);case24:使用拉普拉斯算子显示梯度图像optionshowLaplacian(fileRealPath);case25:边缘检测optionshowCanny(fileRealPath);}}}释放鼠标briefMainListView::mouseReleaseEventparameventvoidMainListView::mouseReleaseEvent(QMouseEventevent){如果鼠标释放位置和单击位置相距超过5像素,则不会触发item选中if((eventpos()startPoint)。manhattanLength()5)MainListViewItemitemstaticcastMainListViewItem(itemAt(eventpos()));setCurrentItem(item);}处理鼠标离开后,hover图标回复正常状态briefMainListView::leaveEventparameventvoidMainListView::leaveEvent(QEventevent){QUNUSED(event);oldHighlightItemtheHighlightIif(oldHighlightItem!oldHighlightItemisSelected())oldHighlightItemsetIcon(oldHighlightItemmIcon);oldHighlightItemtheHighlightI}voidMainListView::updateSelectedIcon(){oldSelectedItemtheSelectedItheSelectedItemstaticcastMainListViewItem(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:QIconmI默认图标QIconmIconH选中时图标intmP第一个编辑signals:};
  mainlistviewitem。cppincludemainlistviewitem。h自定义主页ListView的Item项briefMainListViewItem::MainListViewItemparamparentMainListViewItem::MainListViewItem(QStringitemTitle,constQIconicon,constQIconiconHover,intpos,QListWidgetparent):QListWidgetItem(parent){setText(itemTitle);mImIconHovericonHsetIcon(mIcon);setSizeHint(QSize(360,47));mP}
  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:0}除去复选框MainListViewItem{background:rgb(245,245,247);border:0margin:0px0px0px0}MainListViewItem::Item{height:40border:0paddingleft:14color: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开发中文网
投诉 评论 转载

牛杂怎么做才好吃?牛杂主要有两种口味清汤、酱香最早起源于香港,主要以牛腩、牛肠、牛肚、牛筋、牛心等内脏为原材料制作而成,也是香港、广东人最喜欢的小吃,一锅美味的牛杂关键在于酱料的调制和牛杂的腥味……有无造句用有无造句大全151、切勿坐耗时光,须知每时每刻都有无穷的利息;日记不足,岁计有余。152、科学上没有平坦的大道,真理长河中有无数礁石险滩。只有不畏攀登的采药者,只有不怕巨浪的弄潮儿,……生产队时期的农民,晚上都干什么?生产队时期已经过去,成为历史,我经历了那个时代。现在想起来挺有意思的。白天生产队的社员在一起劳动,天黑并不完全吹灯睡觉。我觉得那时的夜生活,比现在好。01:吃过晚饭,上工……慈禧46岁时不慎小产,但是在26岁丧夫,孩子是谁的呢?晚清有很多不为人知的秘密,其中最让人好奇的是野史,她到了更年期即将怀孕。正史上没有记载这件事,但宫内外,也让大家传开了。据野史记载,光绪八年,李莲英介绍一位名叫白的古董商到慈溪……Qt制作一个ListView列表一、概述案例:使用Qt制作一个ListView。点击ListView的Item可以用于测试OpenCV的各种效果自定义一个:MainListView继承QListW……翻天的英语课唉,又是英语课。这个星期已经是第4次了。我拖着下巴,无聊地想。喂,林芳韵,英语课太无聊了,你找点乐子啊。我的同桌唐宇俊趴在桌子上,无聊地说。喂,拜托,你以为我是百度吗?我无聊地……被误解的私域流量任何品牌面对的都是全域化场景,公域中争夺曝光扩大漏斗上端,为私域流量添砖加瓦,而私域中精细化运营为线索和转化赋能。不要因为焦虑就头脑一热,更不要因为别人吹风就失去判断。焦……使我们造句用使我们造句大全1能使我们感觉快乐的,不是环境,而是态度。2虚荣促使我们装扮成不是我们本来的面目以赢得别人的赞许,虚伪却鼓动我们把我们的罪恶用美德的外表掩盖起来,企图避免别人的责备。菲尔……选对衣服颜色也可缓解压力闷热的炎炎夏日之际,每天在办公室奋战的职场人,怎样才能拥有一份清凉的心情呢?色彩心理学家发现,衣服颜色对心理能产生重要影响。比如,白、黑、灰三个常见的职场色系,虽然稳重,……网红城市长沙有哪些出名的小吃?长沙湖南省辖地级市、省会、特大城市,首批国家历史文化名城,有黄兴、刘少奇、雷锋等名人。湘江北去,橘子洲头,网红城市长沙能让你尝出千滋百味。美食是长沙网红城市的一个重要支撑……优秀的企业文化是企业发展的灵魂新时代的企业文化哲企业中的英雄向人们传达的一个重要的信息是,我们这个企业提倡的是什么,应该像谁一样才是最好的,这就是我们企业的行为模式和行为标准。同时,英雄的作用还在于,他在企业中有一种持久的影……光州史话明代光州察院和知州吴一介本文作者:潢水楚乡潢川以历史文化悠久闻名于豫南大地,而潢川县第二中学这所百年老校的独特地理位置和人文环境,恰似文化古城中的一颗明珠,熠熠生辉。潢川县第二中学校园景色……
俗语娶妻不娶仰头女,嫁汉不嫁低头汉是啥意思,有道理吗?职业技术教育课程设置与人才培养的基本关系假饮料如何分辩安全生产和应急避险科普当心手机变手雷使用不当添伤悲可以让男人变年轻的个年龄橡皮擦部门联合对重点用水单位开展双随机一公开抽查指甲油不涂底油会怎样还不好好保护你的指甲南宋辛弃疾的人生,孩子们听完泪目我隔一天吃一碗它,吃出好睡眠,天天睡到自然醒,精神奕奕!康熙偷考天津女排外援瓦尔加斯,她的扣球能力超过朱婷等国家队员吗?汉武帝的主要功绩有哪些如何评价汉武帝图长期月经周期不调怎么办与你分享有效治疗的诀窍一次相逢一份暖我所理解的“粉丝营销”5G基站有害健康?伪装者基72变站表示委屈鬼谷子:记牢六个技巧,讲话水平大提高!做。。。深夜伤感说说心情短语女人必备口红这12超美的色号你一定要有爱的雨点华为取名的巴龙、鲲鹏、凌霄、昇腾、鸿蒙等在山海经里面分别指什第六章星星之火心情随笔人生感悟简单教育学校的工作计划

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找