门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
精华区(请在“有问必答”发帖)
›
有问必答
›
其他
›
如何实现widget某个区域不被刷新
发布主题
返回列表
如何实现widget某个区域不被刷新
2
回复
8341
查看
[复制链接]
家有布衣
当前离线
积分
349
家有布衣
累计签到:311 天
连续签到:1 天
来源:
2017-12-21 11:23:31
显示全部楼层
|
阅读模式
30
Qter豆
1,我找些资料,有个函数 void QWidget::erase ( int x, int y, int w, int h ),但是在qt5.5已经找不到了。
2,问题在下图中,一个widget,上面有两个控件子对象,控件1,控件2,还有禁止刷新区域(黄色部分)。现在控件1与控件2同时定时刷新,对于Widget(父对象)蓝色部分整体刷新。
有什么方法,在控件1与2正常刷新的的情况下,黄色区域不刷新。
我来回答
附件:
您需要
登录
才可以下载或查看,没有帐号?
立即注册
回复
使用道具
举报
stlcours
当前离线
积分
108
stlcours
累计签到:1 天
连续签到:1 天
2018-2-9 18:20:44
显示全部楼层
你覆盖父窗口的paintEvent事件,然后计算出除了黄色区域之外的三个矩形,即上,左,下三个矩形。然后手动调用
QPaintEvent:
PaintEvent(const QRect &paintRect) 函数:
http://doc.qt.io/qt-5/qpaintevent.html#region
特别注意,在手动调用以后,就不要让它继续向上传递了。怎么样不传递,大概是这样写:
event->ignore();
点评
家有布衣
不知怎么给豆。 这个问题后来解决的方法是用repaint代替update,因为update的特性是,会把一定时间内的绘制区域合并到一起,repain()直接刷新
详情
回复
发表于 2018-3-1 12:20
回复
使用道具
举报
家有布衣
当前离线
积分
349
家有布衣
累计签到:311 天
连续签到:1 天
2018-3-1 12:20:20
显示全部楼层
stlcours 发表于 2018-2-9 18:20
你覆盖父窗口的paintEvent事件,然后计算出除了黄色区域之外的三个矩形,即上,左,下三个矩形。然后手动调 ...
不知怎么给豆。
这个问题后来解决的方法是用repaint代替update,因为update的特性是,会把一定时间内的绘制区域合并到一起,repain()直接刷新
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了