Qt Designer 可以很方便的进行界面设计和控件属性的设置,但是这里有一个非常隐蔽的细节,很容易踩坑,这个细节就是——控件的属性值是否是默认值。
举例
- 我们都知道,styleSheet可以设置控件的样式,那么要注意,如下两个styleSheet是有区别的
uic生成头文件时,第一种不会有setStyleSheet语句,而第二种会有setStyleSheet("");语句,有一次我在使用他人提供的UI组件时,忽略了这一点,导致原有组件的某些样式显示异常,原因就是第二种实际上把styleSheet设置为空,覆盖了原有的组件设置的styleSheet属性。
- 使用webEngineView控件时,有一个属性是url
如果拖动到界面上,默认是下面那种状态,这就会出现一个奇怪的现象。如果你连接了loadFinished信号,你会发现第一次显示该控件什么都不加载的情况下,自动会触发一次该信号,如果你手动加载了某个页面,又会再次触发。第一次触发则是因为该控件加载完了“about:blank”这个页面,第二次触发则是正常的指定页面加载完成。本质上,第二种状态下uic生成的代码里一定有load语句,因此才触发信号,第一种状态则不会生成load语句。
解决办法
点击属性重置按钮,就会真正的清空你对这个属性值的修改。
总结
对于styleSheet属性不为粗体的情况,应理解为不改变原有的styleSheet,而不是styleSheet设置为空,因为代码里仍然可能手动修改styleSheet。其他属性道理类似