Qt 开发自定义圆角窗体支持深色浅色切换
自动播放
|
查看原图
|
返回列表
|
返回原帖
登录
注册
上一张
下一张
作者:
boylebao
发布日期:2022-03-31
描述:
暂无描述
保存
取消
ysu533
:嗯嗯,所以这个方案不适合太复杂的UI。而且上面如果是浏览器或视频的话,又可能有别的问题。setMask 可以避免这个问题。
boylebao
:我想你这段代码肯定会遮挡圆角的,如果label的父类是圆角,你又把它移动到0,0位置,就是移动到父类的0,0位置,那肯定会挡的,要么你把label也设置同样的圆角
ysu533
:没明白, 能给个编译好的二进制包不。或者帮忙测试下,加点代码:auto label = new QLabel(this);// this 为toplevelWidgetlabel->setFixedSize(40, 40);label->setStyleSheet("background:red");label->move(0, 0);试试这样圆角会不会被这个红色块挡住。
boylebao
:我这里填充的widget是填充到这个圆角窗体的中间部分,首先我这个圆角窗体分三部分:titleBarWidget,centerWidget,bottomWidget。标题栏是不会变的,中间部分可以填充一个widget布局在里面,底部也可以填充,所以填充进去的widget不会破坏圆角窗体
ysu533
:移动和setmask没关系,我指的是开启hidpi支持后,跨屏操作。如果没开hidpi,也没有多屏(且需要缩放系数不一样)当然没问题啊。 您这样实现,加入我左上叫的图标在布局里面是靠近最左上位置的(即距离左上没有任何空隙),那窗体还是圆角吗?如果不是的话,就意味着您这个框架很容 ..
boylebao
:圆角,我是利用qss和paintEvent结合实现的,我并没有在高分屏上测试过,不好给意见,至于移动操作,我的最外层还是widget,所以它还是矩形,直接调用move和setGemotry是没问题,你用setMask的方式是不是实现不规则的窗口,所以导致移动窗体不正常呢?
ysu533
:巧了,这两天也刚帮同事搞完圆角。 不知道你是怎么实现的,个人感觉还是挺简单的。setMask + mask后的锯齿修复就可以了。PS:我认为你这些都挺好实现的,就是一点上面你没说的。移动窗口操作是如何适配高分屏启用的(多显示屏,不同缩放系数)。注意我上面的移动不仅限于鼠标移动 ..
boylebao
:因为截图的原因,四个角是桌面背景
maxlogo
:很明显看到圆角下面不是透明的?