Rajesh_Jiang 发表于 2018-9-28 10:47:25

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

因为要做一个随控件大小改变 文字也随之适应变化大小的功能,然而计算出新的字体大小后,setFont无效,如果没有设置过qss的话,setFont是有效的,这是何解?

Since 发表于 2018-9-28 18:53:10

qss 可能是在 widget 渲染完成之后加载的,然后刚好覆盖了,研究一下 qss 有哪些东西,可能存在全局属性的,那就要看你如何取舍了 ~

baizy77 发表于 2018-9-28 22:27:16

可以试一下使用setStyleSheet的方式设置字体。

Rajesh_Jiang 发表于 2018-9-29 09:10:52

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

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

Rajesh_Jiang 发表于 2018-9-29 09:11:32

baizy77 发表于 2018-9-28 22:27
可以试一下使用setStyleSheet的方式设置字体。

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

Rajesh_Jiang 发表于 2018-9-29 09:12:36

baizy77 发表于 2018-9-28 22:27
可以试一下使用setStyleSheet的方式设置字体。

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

baizy77 发表于 2018-9-29 09:26:01

Rajesh_Jiang 发表于 2018-9-29 09:12
用的就是setStyleSheet方法,就是因为用了它setFont无效了

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

Rajesh_Jiang 发表于 2018-9-29 09:49:25

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

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

baizy77 发表于 2018-9-29 10:07:11

Rajesh_Jiang 发表于 2018-9-29 09:49
是的,我也试过这个方法,但是会造成控件上设置的qss原属性被覆盖丢失。 ...

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

Rajesh_Jiang 发表于 2018-9-29 10:22:02

baizy77 发表于 2018-9-29 10:07
那您先str = pText->getStyleSheet(),
str += fontstr;
pText->setStyleSheet(),


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

lwei2 发表于 2021-6-17 16:51:41

楼主,请问这个问题你解决了吗?请问setStyleSheet设置控件的样式,setFont设置字体库,但结果setFont设置的字体库好像和实际字体表现的不太一样,请问这个是为啥呢?
页: [1]
查看完整版本: 为什么设置了qss后,控件的setFont功能就失效了