windowIcon对象为部件对象的属性,但只有窗口对象有效,其他派生对象如pushButtong对象无效。

在windowIcon对象上有如下子属性设置:

PyQt(Python+Qt)学习随笔:Qt Designer中部件的windowIcon属性_.net

这几个子属性实际上是QIcon类中继承的。它们的含义如下:

1、Theme(图标主题):图标主题是一组具有相同外观和感觉的图标,从程序员的角度来看,图标主题只是一个映射。给定一组要在其中查找图标的目录和一个主题名称,它将图标名称和标称图标大小映射到图标文件名。

关于图标主题的内容老猿没有弄清楚,猜测可能是图标文件和目录以及大小有套规范,然后对应用指定主题,就可以在主题对应目录自动按照规范查找对应的图标。

有几个网址可以参考一下:

《Icon Naming Specification》

《Icon Theme Specification》

2、Normal off到Selected On

这8个子属性应该是QIcon的两个属性的组合,分别指定部件在这8种状态下使用哪个图标。这两个属性分别是QIcon的如下两个枚举类型成员:

enum Mode { Normal, Disabled, Active, Selected },四个值分别表示

    1)QIcon.Normal:部件为使能状态,但未激活,没有获得焦点。

2)QIcon.Disabled:部件为禁用状态。

3)QIcon.Active:部件为激活状态,获得了焦点(如鼠标悬停在上面,或Tab键移动焦点)。

4)QIcon.Selected:部件被选中。
当部件的状态切换时,默认的图标绘制函数会自动根据部件的状态重绘图标。


enum State { Off, On }

某些部件还有所谓的开关状态(比如一个按钮可以有按下和弹起两个状态),则还可以根据 state 参数来选择不同的图像。

因此上述两个类型的组合对应了8种状态就是Designer图标的8个子属性。

注意:如果theme设置了,则优先使用theme去加载图标,只有找不到的情况下才使用下面每种状态的图标。


PyQt(Python+Qt)学习随笔:Qt Designer中部件的windowIcon属性_.net_02