查看完整版本: [-- QT父窗口paintEvent 会被子窗口遮挡 --]

QTCN开发网 -> Qt基础编程 -> QT父窗口paintEvent 会被子窗口遮挡 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

thro3388 2021-09-02 19:47

QT父窗口paintEvent 会被子窗口遮挡

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

20091001753 2021-09-02 20:25
当然有简单的办法。直接用 QLabel 就好,你只需要更新位置。

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

thro3388 2021-09-03 11:38
20091001753:当然有简单的办法。直接用 QLabel 就好,你只需要更新位置。
控件多了,自然涉及到遮挡关系,QLabel::raise() 可以把它置于顶层。 (2021-09-02 20:25) 

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

20091001753 2021-09-03 12:08
没错啊,我的意思是:

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

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

thro3388 2021-09-04 14:59
20091001753:没错啊,我的意思是:
漂浮的文字直接用 QLabel,不需要用 paintEvent 绘制。
为了保证漂浮的文字不被遮挡,用 QLabel::raise() 将它置于顶层。 (2021-09-03 12:08) 

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


查看完整版本: [-- QT父窗口paintEvent 会被子窗口遮挡 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled