• 1511阅读
  • 4回复

[讨论]QT父窗口paintEvent 会被子窗口遮挡 [复制链接]

上一主题 下一主题
离线thro3388
 

只看楼主 倒序阅读 楼主  发表于: 2021-09-02
最近做一个软件,在一个父窗口里面,有一个子窗口。我想在父窗口做文本的弹幕,例如一个文本hello,从屏幕
的最右面到最左面飘过,我用定时器在paintEvent里面绘制这个文本。当文本经过子窗口的时候 ,文本被子窗口遮挡住了。
一般这种情况怎么处理呢。QT提供类似的解决方案没有 。还是说必须要在子窗口里面去也用paintEvent来做。
离线20091001753

只看该作者 1楼 发表于: 2021-09-02
当然有简单的办法。直接用 QLabel 就好,你只需要更新位置。

控件多了,自然涉及到遮挡关系,QLabel::raise() 可以把它置于顶层。
(づ ̄ 3 ̄)づ
离线thro3388

只看该作者 2楼 发表于: 2021-09-03
回 20091001753 的帖子
20091001753:当然有简单的办法。直接用 QLabel 就好,你只需要更新位置。
控件多了,自然涉及到遮挡关系,QLabel::raise() 可以把它置于顶层。 (2021-09-02 20:25) 

我就是想子窗口QLabel不遮挡我父窗口上面绘制出来的漂浮的文字。
离线20091001753

只看该作者 3楼 发表于: 2021-09-03
没错啊,我的意思是:

漂浮的文字直接用 QLabel,不需要用 paintEvent 绘制。

为了保证漂浮的文字不被遮挡,用 QLabel::raise() 将它置于顶层。
(づ ̄ 3 ̄)づ
离线thro3388

只看该作者 4楼 发表于: 2021-09-04
回 20091001753 的帖子
20091001753:没错啊,我的意思是:
漂浮的文字直接用 QLabel,不需要用 paintEvent 绘制。
为了保证漂浮的文字不被遮挡,用 QLabel::raise() 将它置于顶层。 (2021-09-03 12:08) 

我之前用过,但是QLabel显示文本,会有一个方框。很丑。我设置成背景透明,结果整个窗口包括字体也透明了,所以才用绘制的方法。QLabel有没有字体不透明,背景透明的方法?我找了下资料。好像都没看到怎么实现
快速回复
限100 字节
 
上一个 下一个