请教大神,继续问下Qlistwidget问题

波斯丸子 2016-06-22 11:37:25


实现效果就是鼠标点击,移动到EEEE,FFFF这些Item的时候,不改变颜色,点击或者移动到其他item上就要改变颜色,请问怎么做方便点???
...全文
354 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷静忍耐 2016-06-23
  • 打赏
  • 举报
回复
引用 12 楼 mxqin 的回复:
[quote=引用 11 楼 u013466477 的回复:] [quote=引用 9 楼 mxqin 的回复:] [quote=引用 6 楼 u013466477 的回复:] [quote=引用 3 楼 mxqin 的回复:] [quote=引用 2 楼 u013466477 的回复:] 你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
也是ListWidgetItem,判断是能判断,可效果的话QSS无法分辨出来。鼠标放上去也会改变颜色[/quote] 用QSS并不是万能,很多不能实现 用我说的那个enterItem可以实现啊,当前item如果是不想要效果的item,那不设置颜色就好了。这方法我玩了很多次了[/quote] 如果不用qss,list里面那个默认的停留,或者点中的效果怎么去掉??默认的有一个透明的图层在上面的,你设置背景也会出现那个东西。[/quote] 先用下面这个,然后点击的效果用QSS,鼠标滑过用enterItem listWidget->setStyleSheet("selection-background-color:rgba(80, 90, 140);"); [/quote] 这个先不管了,怎么移动item,就是把第3行的移动到第一行,这样![/quote] 拖拽,QListWidget自带这个功能。这个百度一搜应该很多。 Qt首页puzzle这个例子,你也可以看一下
波斯丸子 2016-06-23
  • 打赏
  • 举报
回复
引用 11 楼 u013466477 的回复:
[quote=引用 9 楼 mxqin 的回复:] [quote=引用 6 楼 u013466477 的回复:] [quote=引用 3 楼 mxqin 的回复:] [quote=引用 2 楼 u013466477 的回复:] 你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
也是ListWidgetItem,判断是能判断,可效果的话QSS无法分辨出来。鼠标放上去也会改变颜色[/quote] 用QSS并不是万能,很多不能实现 用我说的那个enterItem可以实现啊,当前item如果是不想要效果的item,那不设置颜色就好了。这方法我玩了很多次了[/quote] 如果不用qss,list里面那个默认的停留,或者点中的效果怎么去掉??默认的有一个透明的图层在上面的,你设置背景也会出现那个东西。[/quote] 先用下面这个,然后点击的效果用QSS,鼠标滑过用enterItem listWidget->setStyleSheet("selection-background-color:rgba(80, 90, 140);"); [/quote] 这个先不管了,怎么移动item,就是把第3行的移动到第一行,这样!
冷静忍耐 2016-06-22
  • 打赏
  • 举报
回复
你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
Little柯南 2016-06-22
  • 打赏
  • 举报
回复
给你需要的item设置styleSheet方式
冷静忍耐 2016-06-22
  • 打赏
  • 举报
回复
引用 9 楼 mxqin 的回复:
[quote=引用 6 楼 u013466477 的回复:] [quote=引用 3 楼 mxqin 的回复:] [quote=引用 2 楼 u013466477 的回复:] 你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
也是ListWidgetItem,判断是能判断,可效果的话QSS无法分辨出来。鼠标放上去也会改变颜色[/quote] 用QSS并不是万能,很多不能实现 用我说的那个enterItem可以实现啊,当前item如果是不想要效果的item,那不设置颜色就好了。这方法我玩了很多次了[/quote] 如果不用qss,list里面那个默认的停留,或者点中的效果怎么去掉??默认的有一个透明的图层在上面的,你设置背景也会出现那个东西。[/quote] 先用下面这个,然后点击的效果用QSS,鼠标滑过用enterItem listWidget->setStyleSheet("selection-background-color:rgba(80, 90, 140);");
波斯丸子 2016-06-22
  • 打赏
  • 举报
回复
引用 8 楼 u010111033 的回复:
[quote=引用 7 楼 u010111033 的回复:] [quote=引用 4 楼 mxqin 的回复:] [quote=引用 1 楼 u010111033 的回复:] 给你需要的item设置styleSheet方式
item没办法单独设置styleSheet吧[/quote] QListWidget *List; List->addItem(tr("Name: Wang")); List->addItem(tr("Info: gps")); List->addItem(tr("Status: Unknown")); List->addItem( tr("<font color='red'>xxxxxxx</font>"));//设置颜色 仔细看,将XXXXXX替换不就成了?[/quote] 再者:listWidget->setStyleSheet( "QListWidget::item {border-style: solid; border-width:1px; border-color:black;}");[/quote] 不是,list不是默认有个鼠标指上去,就颜色不一样,点下去颜色又不一样这个效果么,我想自己弄这个效果! 怎么把这系统这个默认的效果去除掉??
波斯丸子 2016-06-22
  • 打赏
  • 举报
回复
引用 6 楼 u013466477 的回复:
[quote=引用 3 楼 mxqin 的回复:] [quote=引用 2 楼 u013466477 的回复:] 你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
也是ListWidgetItem,判断是能判断,可效果的话QSS无法分辨出来。鼠标放上去也会改变颜色[/quote] 用QSS并不是万能,很多不能实现 用我说的那个enterItem可以实现啊,当前item如果是不想要效果的item,那不设置颜色就好了。这方法我玩了很多次了[/quote] 如果不用qss,list里面那个默认的停留,或者点中的效果怎么去掉??默认的有一个透明的图层在上面的,你设置背景也会出现那个东西。
Little柯南 2016-06-22
  • 打赏
  • 举报
回复
引用 7 楼 u010111033 的回复:
[quote=引用 4 楼 mxqin 的回复:] [quote=引用 1 楼 u010111033 的回复:] 给你需要的item设置styleSheet方式
item没办法单独设置styleSheet吧[/quote] QListWidget *List; List->addItem(tr("Name: Wang")); List->addItem(tr("Info: gps")); List->addItem(tr("Status: Unknown")); List->addItem( tr("<font color='red'>xxxxxxx</font>"));//设置颜色 仔细看,将XXXXXX替换不就成了?[/quote] 再者:listWidget->setStyleSheet( "QListWidget::item {border-style: solid; border-width:1px; border-color:black;}");
Little柯南 2016-06-22
  • 打赏
  • 举报
回复
引用 4 楼 mxqin 的回复:
[quote=引用 1 楼 u010111033 的回复:] 给你需要的item设置styleSheet方式
item没办法单独设置styleSheet吧[/quote] QListWidget *List; List->addItem(tr("Name: Wang")); List->addItem(tr("Info: gps")); List->addItem(tr("Status: Unknown")); List->addItem( tr("<font color='red'>xxxxxxx</font>"));//设置颜色 仔细看,将XXXXXX替换不就成了?
冷静忍耐 2016-06-22
  • 打赏
  • 举报
回复
引用 3 楼 mxqin 的回复:
[quote=引用 2 楼 u013466477 的回复:] 你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
也是ListWidgetItem,判断是能判断,可效果的话QSS无法分辨出来。鼠标放上去也会改变颜色[/quote] 用QSS并不是万能,很多不能实现 用我说的那个enterItem可以实现啊,当前item如果是不想要效果的item,那不设置颜色就好了。这方法我玩了很多次了
波斯丸子 2016-06-22
  • 打赏
  • 举报
回复
就是鼠标停留在上面那个效果,怎么根据Item单独屏蔽??
波斯丸子 2016-06-22
  • 打赏
  • 举报
回复
引用 1 楼 u010111033 的回复:
给你需要的item设置styleSheet方式
item没办法单独设置styleSheet吧
波斯丸子 2016-06-22
  • 打赏
  • 举报
回复
引用 2 楼 u013466477 的回复:
你的EEEE,FFF是widget放进去的还是就是ListWidgetItem 如果是Widget,你只要判断是不是当前item绑定了widget,就是itemWidget是否不为空 如果是item,那你就要自己根据item里面的文本判断了。或者你也可以重载ListWidgetItem,在里面加一个isGroup标志,当你鼠标移动到item,就获取item是不是isGroup就好了
也是ListWidgetItem,判断是能判断,可效果的话QSS无法分辨出来。鼠标放上去也会改变颜色

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧