• 7870阅读
  • 11回复

两个 Label 叠在一起,怎样控制它们的层次关系? [复制链接]

上一主题 下一主题
离线napier
 

只看楼主 正序阅读 楼主  发表于: 2009-08-04


如附件图,用 Label 载入两个图片,能不能让 Label_2 有时被 Label_1 遮住,需要显示时又出现在上层?
离线2nd090215
只看该作者 11楼 发表于: 2010-01-11
个人认为8楼正解
[ 此帖被2nd090215在2010-01-14 18:06重新编辑 ]
离线yangfanxing
只看该作者 10楼 发表于: 2010-01-11
引用第8楼pathtonorth于2010-01-11 17:45发表的  :
如果label2完全在label1内部就设置label2的父对象为label1


这个貌似不会有漏洞了~~~或者有active之类的???

我建议QWidget::stackUnder ( QWidget * w )这个最保险。显示的时候让1置于2之下~~~
PHPWind好恶心。。。不想看这种界面。。。
离线2nd090215
只看该作者 9楼 发表于: 2010-01-11
关注,
离线pathtonorth
只看该作者 8楼 发表于: 2010-01-11
如果label2完全在label1内部就设置label2的父对象为label1
离线napier

只看该作者 7楼 发表于: 2009-08-05
hide show 是可以的,我目前就是这样用的。我主要担心的是这样写是不是有漏洞——我不知道 Label 之间是需要设定层次关系,还是按照 Label 实例生成的顺序可以确定“后来居上”。如果是前者,单纯使用 hide show 就可能在某些情况下出现问题。
离线sentimental
只看该作者 6楼 发表于: 2009-08-05
Label_2  设置hide show不可以么??
离线napier

只看该作者 5楼 发表于: 2009-08-04
谢谢。我再去试试吧。

之前我也试过 QGraphicsView,不过这个似乎有些复杂,我用它显示图片的效率比较差,明显看到有个载入图片的延迟。
离线shiroki

只看该作者 4楼 发表于: 2009-08-04
用QGraphicsView会比较好做,可以给item设个Z-Order, 就是层次关系
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线napier

只看该作者 3楼 发表于: 2009-08-04
就是一个简单的动画效果。

假设 Label_1 是一个卡通人物,眼睛是半闭着的。Label_2 是睁大的眼睛,平时 Label_2 隐藏。当鼠标移动到窗口范围内时就显示 Label_2。

我现在用的是 enterEvent 设置 Label_2 为可见, leaveEvent 把 Label_2 隐藏起来,这样就基本实现了这个效果。不过担心 Label_2 会不会在某些情况下跑到底层,效果就没有了。不知道是不是有比较简单的办法把 Label_2 始终放在上面。

不想切换整个图片,因为比较大,占用资源会多一些。所以 Label_1 始终是要显示的。
离线浪漫天使
只看该作者 2楼 发表于: 2009-08-04
不知道为什么要这么做?
没有变通的方法么?

附件里面就是一个很蹩脚方法,需要布局时候就不行了,因为QLabel本来就不是一个存放控件的容器类。

cengdie.rar (572 K) 下载次数:5
离线jorneyr

只看该作者 1楼 发表于: 2009-08-04
这个就是QStackedWidget可以实现的, 实在不行就自己写一个widget, 动态的设置label1和label2, 当有一个显示时, 另一个就隐藏, 另一个显示时, 这一个就隐藏.
快速回复
限100 字节
 
上一个 下一个