找回密码
 立即注册
收起左侧

为什么设置了qss后,控件的setFont功能就失效了

10
回复
28880
查看
[复制链接]

尚未签到

来源: 2018-9-28 10:47:25 显示全部楼层 |阅读模式
1Qter豆
因为要做一个随控件大小改变 文字也随之适应变化大小的功能,然而计算出新的字体大小后,setFont无效,如果没有设置过qss的话,setFont是有效的,这是何解?

回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2018-9-28 18:53:10 显示全部楼层
qss 可能是在 widget 渲染完成之后加载的,然后刚好覆盖了,研究一下 qss 有哪些东西,可能存在全局属性的,那就要看你如何取舍了 ~
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-9-28 22:27:16 显示全部楼层
可以试一下使用setStyleSheet的方式设置字体。
回复

使用道具 举报

尚未签到

2018-9-29 09:10:52 显示全部楼层
Since 发表于 2018-9-28 18:53
qss 可能是在 widget 渲染完成之后加载的,然后刚好覆盖了,研究一下 qss 有哪些东西,可能存在全局属性的 ...

我还以为是一次性加载完成后,qss表就不会再做任何事了,除非再手动加载一次qss
回复

使用道具 举报

尚未签到

2018-9-29 09:11:32 显示全部楼层
baizy77 发表于 2018-9-28 22:27
可以试一下使用setStyleSheet的方式设置字体。

用的就是setStyleSheet方法,就是因为用了它setFont无效了
回复

使用道具 举报

尚未签到

2018-9-29 09:12:36 显示全部楼层
baizy77 发表于 2018-9-28 22:27
可以试一下使用setStyleSheet的方式设置字体。

用的就是setStyleSheet方法,就是因为用了它setFont无效了
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-9-29 09:26:01 显示全部楼层
Rajesh_Jiang 发表于 2018-9-29 09:12
用的就是setStyleSheet方法,就是因为用了它setFont无效了

很抱歉,我没说明白。如果您是用文本对象控件的指针pText调用setFont(),那么是否可以试试pText->setStyleSheet()
回复

使用道具 举报

尚未签到

2018-9-29 09:49:25 显示全部楼层
baizy77 发表于 2018-9-29 09:26
很抱歉,我没说明白。如果您是用文本对象控件的指针pText调用setFont(),那么是否可以试试pText->setStyl ...

是的,我也试过这个方法,但是会造成控件上设置的qss原属性被覆盖丢失。
回复

使用道具 举报

累计签到:41 天
连续签到:1 天
2018-9-29 10:07:11 显示全部楼层
Rajesh_Jiang 发表于 2018-9-29 09:49
是的,我也试过这个方法,但是会造成控件上设置的qss原属性被覆盖丢失。 ...

那您先str = pText->getStyleSheet(),
str += fontstr;
pText->setStyleSheet(),
这样呢?
回复

使用道具 举报

尚未签到

2018-9-29 10:22:02 显示全部楼层
baizy77 发表于 2018-9-29 10:07
那您先str = pText->getStyleSheet(),
str += fontstr;
pText->setStyleSheet(),

试了下,这样的话没任何变化了。而且这样的话造成一个问题吧,多次变化后,styleSheet会越积越多
回复

使用道具 举报

累计签到:75 天
连续签到:1 天
2021-6-17 16:51:41 显示全部楼层
楼主,请问这个问题你解决了吗?请问setStyleSheet设置控件的样式,setFont设置字体库,但结果setFont设置的字体库好像和实际字体表现的不太一样,请问这个是为啥呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了