目录
前言
相信很大一部分开发者真的被Qt样式表的属性搞挺头痛的!
一方面Qss的示例Demo太过简单,
另一方面,Qss的所有属性在Qt的官方文档Aaasist中也描述的不清晰,
自己不得不从Qt源码里找了下所有的Qss关联属性的最确切的名称,在此记录如下!
源码文件信息
源码文件名:
- qcssparser.cpp
- qstylesheetstyle.cpp
源码路径:
- Src\qtbase\src\gui\text
- Src\qtbase\src\widgets\styles
QSS属性大全
1.控件常用的属性
static const QCssKnownValue properties[NumProperties - 1] = {
{ "-qt-background-role", QtBackgroundRole },
{ "-qt-block-indent", QtBlockIndent },
{ "-qt-fg-texture-cachekey", QtForegroundTextureCacheKey },
{ "-qt-line-height-type", QtLineHeightType },
{ "-qt-list-indent", QtListIndent },
{ "-qt-list-number-prefix", QtListNumberPrefix },
{ "-qt-list-number-suffix", QtListNumberSuffix },
{ "-qt-paragraph-type", QtParagraphType },
{ "-qt-style-features", QtStyleFeatures },
{ "-qt-table-type", QtTableType },
{ "-qt-user-state", QtUserState },
{ "alternate-background-color", QtAlternateBackground },
{ "background", Background },
{ "background-attachment", BackgroundAttachment },
{ "background-clip", BackgroundClip },
{ "background-color", BackgroundColor },
{ "background-image", BackgroundImage },
{ "background-origin", BackgroundOrigin },
{ "background-position", BackgroundPosition },
{ "background-repeat", BackgroundRepeat },
{ "border", Border },
{ "border-bottom", BorderBottom },
{ "border-bottom-color", BorderBottomColor },
{ "border-bottom-left-radius", BorderBottomLeftRadius },
{ "border-bottom-right-radius", BorderBottomRightRadius },
{ "border-bottom-style", BorderBottomStyle },
{ "border-bottom-width", BorderBottomWidth },
{ "border-collapse", BorderCollapse },
{ "border-color", BorderColor },
{ "border-image", BorderImage },
{ "border-left", BorderLeft },
{ "border-left-color", BorderLeftColor },
{ "border-left-style", BorderLeftStyle },
{ "border-left-width", BorderLeftWidth },
{ "border-radius", BorderRadius },
{ "border-right", BorderRight },
{ "border-right-color", BorderRightColor },
{ "border-right-style", BorderRightStyle },
{ "border-right-width", BorderRightWidth },
{ "border-style", BorderStyles },
{ "border-top", BorderTop },
{ "border-top-color", BorderTopColor },
{ "border-top-left-radius", BorderTopLeftRadius },
{ "border-top-right-radius", BorderTopRightRadius },
{ "border-top-style", BorderTopStyle },
{ "border-top-width", BorderTopWidth },
{ "border-width", BorderWidth },
{ "bottom", Bottom },
{ "color", Color },
{ "float", Float },
{ "font", Font },
{ "font-family", FontFamily },
{ "font-kerning", FontKerning },
{ "font-size", FontSize },
{ "font-style", FontStyle },
{ "font-variant", FontVariant },
{ "font-weight", FontWeight },
{ "height", Height },
{ "icon", QtIcon },
{ "image", QtImage },
{ "image-position", QtImageAlignment },
{ "left", Left },
{ "letter-spacing", LetterSpacing },
{ "line-height", LineHeight },
{ "list-style", ListStyle },
{ "list-style-type", ListStyleType },
{ "margin" , Margin },
{ "margin-bottom", MarginBottom },
{ "margin-left", MarginLeft },
{ "margin-right", MarginRight },
{ "margin-top", MarginTop },
{ "max-height", MaximumHeight },
{ "max-width", MaximumWidth },
{ "min-height", MinimumHeight },
{ "min-width", MinimumWidth },
{ "outline", Outline },
{ "outline-bottom-left-radius", OutlineBottomLeftRadius },
{ "outline-bottom-right-radius", OutlineBottomRightRadius },
{ "outline-color", OutlineColor },
{ "outline-offset", OutlineOffset },
{ "outline-radius", OutlineRadius },
{ "outline-style", OutlineStyle },
{ "outline-top-left-radius", OutlineTopLeftRadius },
{ "outline-top-right-radius", OutlineTopRightRadius },
{ "outline-width", OutlineWidth },
{ "padding", Padding },
{ "padding-bottom", PaddingBottom },
{ "padding-left", PaddingLeft },
{ "padding-right", PaddingRight },
{ "padding-top", PaddingTop },
{ "page-break-after", PageBreakAfter },
{ "page-break-before", PageBreakBefore },
{ "position", Position },
{ "right", Right },
{ "selection-background-color", QtSelectionBackground },
{ "selection-color", QtSelectionForeground },
{ "spacing", QtSpacing },
{ "subcontrol-origin", QtOrigin },
{ "subcontrol-position", QtPosition },
{ "text-align", TextAlignment },
{ "text-decoration", TextDecoration },
{ "text-indent", TextIndent },
{ "text-transform", TextTransform },
{ "text-underline-style", TextUnderlineStyle },
{ "top", Top },
{ "vertical-align", VerticalAlignment },
{ "white-space", Whitespace },
{ "width", Width },
{ "word-spacing", WordSpacing }
};
2.控件常用属性值
static const QCssKnownValue values[NumKnownValues - 1] = {
{ "active", Value_Active },
{ "alternate-base", Value_AlternateBase },
{ "always", Value_Always },
{ "auto", Value_Auto },
{ "base", Value_Base },
{ "bold", Value_Bold },
{ "bottom", Value_Bottom },
{ "bright-text", Value_BrightText },
{ "button", Value_Button },
{ "button-text", Value_ButtonText },
{ "center", Value_Center },
{ "circle", Value_Circle },
{ "dark", Value_Dark },
{ "dashed", Value_Dashed },
{ "decimal", Value_Decimal },
{ "disabled", Value_Disabled },
{ "disc", Value_Disc },
{ "dot-dash", Value_DotDash },
{ "dot-dot-dash", Value_DotDotDash },
{ "dotted", Value_Dotted },
{ "double", Value_Double },
{ "groove", Value_Groove },
{ "highlight", Value_Highlight },
{ "highlighted-text", Value_HighlightedText },
{ "inset", Value_Inset },
{ "italic", Value_Italic },
{ "large", Value_Large },
{ "left", Value_Left },
{ "light", Value_Light },
{ "line-through", Value_LineThrough },
{ "link", Value_Link },
{ "link-visited", Value_LinkVisited },
{ "lower-alpha", Value_LowerAlpha },
{ "lower-roman", Value_LowerRoman },
{ "lowercase", Value_Lowercase },
{ "medium", Value_Medium },
{ "mid", Value_Mid },
{ "middle", Value_Middle },
{ "midlight", Value_Midlight },
{ "native", Value_Native },
{ "none", Value_None },
{ "normal", Value_Normal },
{ "nowrap", Value_NoWrap },
{ "oblique", Value_Oblique },
{ "off", Value_Off },
{ "on", Value_On },
{ "outset", Value_Outset },
{ "overline", Value_Overline },
{ "pre", Value_Pre },
{ "pre-line", Value_PreLine },
{ "pre-wrap", Value_PreWrap },
{ "ridge", Value_Ridge },
{ "right", Value_Right },
{ "selected", Value_Selected },
{ "shadow", Value_Shadow },
{ "small" , Value_Small },
{ "small-caps", Value_SmallCaps },
{ "solid", Value_Solid },
{ "square", Value_Square },
{ "sub", Value_Sub },
{ "super", Value_Super },
{ "text", Value_Text },
{ "top", Value_Top },
{ "transparent", Value_Transparent },
{ "underline", Value_Underline },
{ "upper-alpha", Value_UpperAlpha },
{ "upper-roman", Value_UpperRoman },
{ "uppercase", Value_Uppercase },
{ "wave", Value_Wave },
{ "window", Value_Window },
{ "window-text", Value_WindowText },
{ "x-large", Value_XLarge },
{ "xx-large", Value_XXLarge }
};
3.控件常用状态(Pseudo-States)
static const QCssKnownValue pseudos[NumPseudos - 1] = {
{ "active", PseudoClass_Active },
{ "adjoins-item", PseudoClass_Item },
{ "alternate", PseudoClass_Alternate },
{ "bottom", PseudoClass_Bottom },
{ "checked", PseudoClass_Checked },
{ "closable", PseudoClass_Closable },
{ "closed", PseudoClass_Closed },
{ "default", PseudoClass_Default },
{ "disabled", PseudoClass_Disabled },
{ "edit-focus", PseudoClass_EditFocus },
{ "editable", PseudoClass_Editable },
{ "enabled", PseudoClass_Enabled },
{ "exclusive", PseudoClass_Exclusive },
{ "first", PseudoClass_First },
{ "flat", PseudoClass_Flat },
{ "floatable", PseudoClass_Floatable },
{ "focus", PseudoClass_Focus },
{ "has-children", PseudoClass_Children },
{ "has-siblings", PseudoClass_Sibling },
{ "horizontal", PseudoClass_Horizontal },
{ "hover", PseudoClass_Hover },
{ "indeterminate" , PseudoClass_Indeterminate },
{ "last", PseudoClass_Last },
{ "left", PseudoClass_Left },
{ "maximized", PseudoClass_Maximized },
{ "middle", PseudoClass_Middle },
{ "minimized", PseudoClass_Minimized },
{ "movable", PseudoClass_Movable },
{ "next-selected", PseudoClass_NextSelected },
{ "no-frame", PseudoClass_Frameless },
{ "non-exclusive", PseudoClass_NonExclusive },
{ "off", PseudoClass_Unchecked },
{ "on", PseudoClass_Checked },
{ "only-one", PseudoClass_OnlyOne },
{ "open", PseudoClass_Open },
{ "pressed", PseudoClass_Pressed },
{ "previous-selected", PseudoClass_PreviousSelected },
{ "read-only", PseudoClass_ReadOnly },
{ "right", PseudoClass_Right },
{ "selected", PseudoClass_Selected },
{ "top", PseudoClass_Top },
{ "unchecked" , PseudoClass_Unchecked },
{ "vertical", PseudoClass_Vertical },
{ "window", PseudoClass_Window }
};
4.控件子部件(sub-controls)
static const PseudoElementInfo knownPseudoElements[NumPseudoElements] = {
{ QStyle::SC_None, "" },
{ QStyle::SC_None, "down-arrow" },
{ QStyle::SC_None, "up-arrow" },
{ QStyle::SC_None, "left-arrow" },
{ QStyle::SC_None, "right-arrow" },
{ QStyle::SC_None, "indicator" },
{ QStyle::SC_None, "indicator" },
{ QStyle::SC_None, "menu-indicator" },
{ QStyle::SC_ComboBoxArrow, "drop-down" },
{ QStyle::SC_ComboBoxArrow, "down-arrow" },
{ QStyle::SC_None, "item" },
{ QStyle::SC_SpinBoxUp, "up-button" },
{ QStyle::SC_SpinBoxUp, "up-arrow" },
{ QStyle::SC_SpinBoxDown, "down-button" },
{ QStyle::SC_SpinBoxDown, "down-arrow" },
{ QStyle::SC_GroupBoxLabel, "title" },
{ QStyle::SC_GroupBoxCheckBox, "indicator" },
{ QStyle::SC_ToolButtonMenu, "menu-button" },
{ QStyle::SC_ToolButtonMenu, "menu-arrow" },
{ QStyle::SC_None, "menu-indicator" },
{ QStyle::SC_None, "tab" },
{ QStyle::SC_ScrollBarSlider, "handle" },
{ QStyle::SC_ScrollBarAddPage, "add-page" },
{ QStyle::SC_ScrollBarSubPage, "sub-page" },
{ QStyle::SC_ScrollBarAddLine, "add-line" },
{ QStyle::SC_ScrollBarSubLine, "sub-line" },
{ QStyle::SC_ScrollBarFirst, "first" },
{ QStyle::SC_ScrollBarLast, "last" },
{ QStyle::SC_ScrollBarSubLine, "up-arrow" },
{ QStyle::SC_ScrollBarAddLine, "down-arrow" },
{ QStyle::SC_ScrollBarSubLine, "left-arrow" },
{ QStyle::SC_ScrollBarAddLine, "right-arrow" },
{ QStyle::SC_None, "handle" },
{ QStyle::SC_None, "handle" },
{ QStyle::SC_None, "separator" },
{ QStyle::SC_None, "scroller" },
{ QStyle::SC_None, "tearoff" },
{ QStyle::SC_None, "indicator" },
{ QStyle::SC_None, "separator" },
{ QStyle::SC_None, "icon" },
{ QStyle::SC_None, "right-arrow" },
{ QStyle::SC_None, "branch" },
{ QStyle::SC_None, "section" },
{ QStyle::SC_None, "down-arrow" },
{ QStyle::SC_None, "up-arrow" },
{ QStyle::SC_None, "chunk" },
{ QStyle::SC_None, "tab" },
{ QStyle::SC_None, "scroller" },
{ QStyle::SC_None, "tear" },
{ QStyle::SC_SliderGroove, "groove" },
{ QStyle::SC_SliderHandle, "handle" },
{ QStyle::SC_None, "add-page" },
{ QStyle::SC_None, "sub-page"},
{ QStyle::SC_SliderTickmarks, "tick-mark" },
{ QStyle::SC_None, "pane" },
{ QStyle::SC_None, "tab-bar" },
{ QStyle::SC_None, "left-corner" },
{ QStyle::SC_None, "right-corner" },
{ QStyle::SC_None, "title" },
{ QStyle::SC_None, "close-button" },
{ QStyle::SC_None, "float-button" },
{ QStyle::SC_None, "separator" },
{ QStyle::SC_MdiCloseButton, "close-button" },
{ QStyle::SC_MdiMinButton, "minimize-button" },
{ QStyle::SC_MdiNormalButton, "normal-button" },
{ QStyle::SC_TitleBarLabel, "title" },
{ QStyle::SC_TitleBarCloseButton, "close-button" },
{ QStyle::SC_TitleBarMinButton, "minimize-button" },
{ QStyle::SC_TitleBarMaxButton, "maximize-button" },
{ QStyle::SC_TitleBarShadeButton, "shade-button" },
{ QStyle::SC_TitleBarUnshadeButton, "unshade-button" },
{ QStyle::SC_TitleBarNormalButton, "normal-button" },
{ QStyle::SC_TitleBarContextHelpButton, "contexthelp-button" },
{ QStyle::SC_TitleBarSysMenu, "sys-menu" },
{ QStyle::SC_None, "item" },
{ QStyle::SC_None, "icon" },
{ QStyle::SC_None, "text" },
{ QStyle::SC_None, "indicator" },
{ QStyle::SC_None, "corner" },
{ QStyle::SC_None, "close-button" },
};
5.其他
static const QCssKnownValue origins[NumKnownOrigins - 1] = {
{ "border", Origin_Border },
{ "content", Origin_Content },
{ "margin", Origin_Margin }, // not in css
{ "padding", Origin_Padding }
};
static const QCssKnownValue repeats[NumKnownRepeats - 1] = {
{ "no-repeat", Repeat_None },
{ "repeat-x", Repeat_X },
{ "repeat-xy", Repeat_XY },
{ "repeat-y", Repeat_Y }
};
static const QCssKnownValue tileModes[NumKnownTileModes - 1] = {
{ "repeat", TileMode_Repeat },
{ "round", TileMode_Round },
{ "stretch", TileMode_Stretch },
};
static const QCssKnownValue positions[NumKnownPositionModes - 1] = {
{ "absolute", PositionMode_Absolute },
{ "fixed", PositionMode_Fixed },
{ "relative", PositionMode_Relative },
{ "static", PositionMode_Static }
};
static const QCssKnownValue attachments[NumKnownAttachments - 1] = {
{ "fixed", Attachment_Fixed },
{ "scroll", Attachment_Scroll }
};
static const QCssKnownValue styleFeatures[NumKnownStyleFeatures - 1] = {
{ "background-color", StyleFeature_BackgroundColor },
{ "background-gradient", StyleFeature_BackgroundGradient },
{ "none", StyleFeature_None }
};
总结
以上为自己跟踪Qt源码的结果,不确定是否还有遗漏,后续有新的发现继续补充!