格式:#id{ 属性: 值; }
这里的 id 指的是 objectName, 每个 QObject 类及其派生类都有的一个属性, “#” + objectName 构成了我们的 ID 选择器, 它匹配所有 objectName 为 ID 选择器所指定的名称的对象, 为其设 置样式. 例如:
#button_1{ color: red; }
注意点:
(1). objectName 是大小写敏感的.
(2). “#”与 ID 之间不可以有空格
(3). 由于 objectName 是所有 QObject 类对象的一个属性, 在运行过程中可以改变, 所以一般 情况下, 要使用 ID 选择器时, 保证 objectName 不要在运行时被改变, 否则重新加载 stylesheet 文件时, 对应的 ID 选择器将不会匹配到原来的控件.
(4). 由于 objectName 允许字符串中含有空格, 但是 ID 选择器中, ID 是从紧跟#后的第一个字 符开始直到遇到空格或“{”之间的字符串, 因此, 如果是为了使用 ID 选择器而设置 objectName, 则 objectName 中不能含有空格
(5). 由于任何对象的 objectName 都可以出现重复, 因此在设置 objectName 时, 尽量保持其 唯一性
(6). Qt 官方给出的 ID 选择器的格式为: 类名#id{ 属性: 值; } 但实际上不加类名也是可以的(加了类名的 ID 选择器在 CSS 中被称为交集选择器),在正 式开发中, 还是建议加上类名, 因为这样可以看出这个 id 选择器所匹配的对象的类型, 有利于提高阅读性.
基于以上特点, 我们在设置 objectName 时, 一般使用下划线”_”连接的多个单词表明此对象 的功能.
例如:
QPushButton#settings_popup_fileDialog_button{ min-height: 31px; min-width: 70px; border: 1px solid black; color: #F0F0F0; min-height: 10px; border-radius:3px; background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #454648, stop:1 #7A7A7A); }