• 7753阅读
  • 7回复

画面残留问题 [复制链接]

上一主题 下一主题
离线帅坤
 
只看楼主 倒序阅读 楼主  发表于: 2010-06-17
我在做一个系统界面,这个系统有两种显示界面:第一个界面继承的是QMainWindow,第二个界面集成的是QWidget。两个界面的大小一样。
我在第一个界面上设置了切换至第二个界面的按钮。第二个见面上有关闭按钮,连接了槽close(),关闭之后就显示第一个界面。也就是第一个界面相当于主界面。
问题在于:
我从第一种界面点击按钮进入第二个见面之后,点击关闭按钮关闭第二个界面后,在第一个界面中的QMultiLineEdit和QTable控件的右下方会残留第一个界面的图像,点击最大化按钮残留的画面就没了。
这是怎么回事啊?要怎么解决啊?
离线帅坤
只看该作者 1楼 发表于: 2010-06-18
这是第一个窗体没有获得焦点的问题还是窗体重绘的问题啊?请大家帮帮忙~
离线xtfllbl

只看该作者 2楼 发表于: 2010-06-18
close的时候第一个界面手动update一下。
上海欢迎您
离线帅坤
只看该作者 3楼 发表于: 2010-06-18
回 2楼(xtfllbl) 的帖子
手动update是什么意思是啊?
离线帅坤
只看该作者 4楼 发表于: 2010-06-18
版主哪去了?救命啊~
离线xtfllbl

只看该作者 5楼 发表于: 2010-06-18

void QWidget::update ()   [slot]
Updates the widget unless updates are disabled or the widget is hidden.
This function does not cause an immediate repaint; instead it schedules a paint event for processing when Qt returns to the main event loop. This permits Qt to optimize for more speed and less flicker than a call to repaint() does.
Calling update() several times normally results in just one paintEvent() call.
Qt normally erases the widget's area before the paintEvent() call. If the Qt::WA_OpaquePaintEvent widget attribute is set, the widget is responsible for painting all its pixels with an opaque color.



我的意思就是手动调用一下这个slot,看看有没效果。
上海欢迎您
离线帅坤
只看该作者 6楼 发表于: 2010-06-18
回 5楼(xtfllbl) 的帖子
哦,好的。
我试试看。
谢谢啦~
离线帅坤
只看该作者 7楼 发表于: 2010-06-18
回 5楼(xtfllbl) 的帖子
不知道怎么获得第一个窗口的指针,没办法调用update()。
我把第二个窗体由继承QWidget()类改为继承QDialog()类,画面残留现象就没有了。奇怪,这怎么解释呢?
快速回复
限100 字节
 
上一个 下一个