Qt UI样式

# 博主优化了一下博客,如下链接

(48条消息) Qt UI样式(控件样式)_蜗牛、哥的博客-CSDN博客

# 注意

## 样式不起作用

``` cpp

1、将样式设置,放到初始化的最后位置,或许有奇效

```

# 控件样式

***

## background 背景属性

``` cpp

//背景色透明

background:transparent;

//背景颜色

background-color:rgba(92,188,227,200)

background-color:#1B89A1

background:rgba(0,0,0,0%);

//指定背景颜色

background:gray;

background-color:white;

//背景渐变色

background:qlineargradient(x1: 0, y1: 0,    x2: 0, y2: 1,    stop: 0 #66e, stop: 1 #fd3e7f);

background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #646464,stop:1 #525252);

```

## border 边界线属性

``` cpp

//去除边界线

border:none;

//边框圆角

border-radius:5px;

//边界线:宽度、颜色

border:5px solid #ff0000;

//虚线

border:1px dotted #242424;

 /*上框线*/

border-top : 1px solid #6699cc;

 /*下框线*/

border-bottom : 1px solid #6699cc;

/*左框线*/

border-left : 1px solid #6699cc;

/*右框线*/

border-right : 1px solid #6699cc;

//边界线:未知作用

border-width:0px;

//

border-top-left-radius:12px;

```

## padding 间隙

``` cpp

padding-left:6px;

padding-right:6px;

//补白

padding:top right bottom left

//修改按钮文本位置

padding-left: 8px;

```

## margin 间隙

``` cpp

//边界留白:listWidgetItem变小 listwidget变小

margin:top right bottom left

margin-bottom:-1px

```

# 显示图像

***

``` cpp

//设置图片,图片不会失真,大小和控件一致

border-image:url(:/resource/1.png);

//

background-image: url();

//图片,不重复

background-repeat: no-repeat;

```

# 点击效果

***

``` cpp

QPushButton:enabled:checked{

}

QPushButton:enabled:!checked{

}

QPushButton:!enabled{

}

QCheckBox:!enabled{}

QCheckBox:enabled:hover{}

QCheckBox::indicator{}

QCheckBox::indicator:unchecked {}

QCheckBox::indicator:unchecked:hover {}

QCheckBox::indicator:unchecked:pressed {}

QCheckBox::indicator:checked {}

QCheckBox::indicator:checked:hover {}

QCheckBox::indicator:checked:pressed {}

```

## eg1

``` cpp

```


 

# 文本

***

```cpp

//文字颜色

color:white;

//渐变色

color: qlineargradient(x1: 0, y1: 0,    x2: 0, y2: 1,    stop: 0 #66e, stop: 1 #fd3e7f);

text-align:right; /*文字右对齐*/

text-align:left; /*文字左对齐*/

text-align:center; /*文字居中对齐*/

text-align:justify; /*文字分散对齐*/

vertical-align属性

vertical-align:top; /*垂直向上对齐*/

vertical-align:bottom; /*垂直向下对齐*/

vertical-align:middle; /*垂直居中对齐*/

vertical-align:text-top; /*文字垂直向上对齐*/

vertical-align:text-bottom; /*文字垂直向下对齐*/

```

# QListWidget

``` cpp

//透明

QListWidget{background:transparent;border:none;}

QListWidget::Item{background: transparent;}

//

QListWidget{}

QListWidget::Item{background:transparent;}

QListWidget::Item:hover{}

QListWidget::Item:selected{}

QListWidget::Item:selected:!active{}

QWidget#ListWidgetItem{};     /*指定对象设计样式*/

//去掉虚线框,未测试

QListWidget#listWidget{outline:0px;}

```

# QTableWidget

``` cpp

QTableWidget{}

//网格线颜色

gridline-color: #6699CC;

```

## QTableWidget::Item

``` cpp

QTableWidget::item{}

//覆盖

QTableWidget::item:hover{}

//选中

QTableWidget::item:selected{}

```

# QScrollBar

``` cpp

//

QScrollBar{}

QScrollBar::handle{}

//

QScrollBar::vertical{}

//垂直滑块的样式

QScrollBar::handle:vertical{}

QScrollBar::handle:hover{}

QScrollBar::handle:pressed{}

QScrollBar::suinb-le{}

QScrollBar::add-line{}

```

## eg1:QScrollBar滚动条-综合属性

``` cpp

    //样式:QTableWidget::QScrollBar::horizontal

    strStyle += R"(

QScrollArea{

border: 0px solid;

border-right-width: 1px;

border-right-color: #dcdbdc;

background-color: #f5f5f7;

}

QScrollBar:horizontal {

background: transparent;

height: 20px;

}

QScrollBar::handle:horizontal {

background:rgba(51, 106, 168, 200);

min-width: 130px;

border-radius:8px;

}

QScrollBar::add-line:horizontal {

border: 0px solid grey;

background: #32CC99;

height: 0px;

subcontrol-position: bottom;

subcontrol-origin: margin;

}

QScrollBar::sub-line:horizontal {

border: 0px solid grey;

background: #32CC99;

height: 0px;

subcontrol-position: top;

subcontrol-origin: margin;

}

QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {

background: none;

width: 0px;

height: 0px;

    border:2px solid #242424;

}

)";

```

## eg2:QScrollBar滚动条-属性分支

``` cpp

    //样式:QTableWidget::QScrollBar::vertical

    strStyle += R"(

QScrollBar:vertical {

background: transparent;

width: 20px;

}

QScrollBar::handle:vertical {

background:rgba(51, 106, 168, 200);

min-height: 130px;

border-radius:8px;

}

)";

    //样式:QTableWidget::QScrollBar::vertical::上下箭头

    strStyle += R"(

QScrollBar::add-line:vertical {

border: 0px solid grey;

background: #32CC99;

height: 0px;

subcontrol-position: bottom;

subcontrol-origin: margin;

}

QScrollBar::sub-line:vertical {

border: 0px solid grey;

background: #32CC99;

height: 0px;

subcontrol-position: top;

subcontrol-origin: margin;

}

)";

    //样式:QTableWidget::QScrollBar::vertical::滑块背景

    strStyle += R"(

QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {

background: none;

width: 0px;

height: 0px;

    border:2px solid #242424;

}

)";

```

# QHeaderView 表头

``` cpp

//设置表头属性

QHeaderView::section{}

QHeaderView::section:checked{}

```

## eg1:QHeaderView表头

``` cpp

QHeaderView::section,QTableCornerButton:section{

    padding:3px;

    margin:0px;

    color:#DCDCDC;

    border:1px solid #242424;

    border-left-width:0px;

    border-right-width:1px;

    border-top-width:0px;

    border-bottom-width:1px;

    background:rgba(51, 106, 168, 255);

}

```

# 其他

``` cpp

width:8px;

//设置交替颜色,需要在函数属性中设置

alternate-background-color:red;

height:22px;

width:20px;

min-height:20px;,

//标选中时前景色:文字颜色

selection-color:red

//鼠标选中时背景色

selection-background-color:lightgray

show-decoration-selected:5

subcontrol-position:top

字体属性:(font)

大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD

样式 {font-style: oblique;}(偏斜体) italic;(斜体) normal;(正常)

行高 {line-height: normal;}(正常) 单位:PX、PD、EM

粗细 {font-weight: bold;}(粗体) lighter;(细体) normal;(正常)

变体 {font-variant: small-caps;}(小型大写字母) normal;(正常)

大小写 {text-transform: capitalize;}(首字母大写) uppercase;(大写) lowercase;(小写) none;(无)

修饰 {text-decoration: underline;}(下划线) overline;(上划线) line-through;(删除线) blink;(闪烁)

常用字体: (font-family)

Courier New, Courier, monospace, Times New Roman, Times, serif, Arial, Helvetica, sans-serif, Verdana

背景属性: (background)

色彩 {background-color: #FFFFFF;}

图片 {background-image: url();}

重复 {background-repeat: no-repeat;}

滚动 {background-attachment: fixed;}(固定) scroll;(滚动)

位置 {background-position: left;}(水平) top(垂直);

简写方法 {background:#000 url(..) repeat fixed left top;} /*简写·这个在阅读代码中经常出现,要认真的研究*/

区块属性: (Block) /*这个属性第一次认识,要多多研究*/

字间距 {letter-spacing: normal;} 数值 /*这个属性似乎有用,多实践下*/

对齐 {text-align: justify;}(两端对齐) left;(左对齐) right;(右对齐) center;(居中)

缩进 {text-indent: 数值px;}

垂直对齐 {vertical-align: baseline;}(基线) sub;(下标) super;(下标) top; text-top; middle; bottom; text-bottom;

词间距word-spacing: normal; 数值

空格white-space: pre;(保留) nowrap;(不换行)

显示 {display:block;}(块) inline;(内嵌) list-item;(列表项) run-in;(追加部分) compact;(紧凑) marker;(标记) table; inline-table; table-raw-group; table-header-group; table-footer-group; table-raw; table-column-group; table-column; table-cell; table-caption;(表格标题) /*display 属性的了解很模糊*/

方框属性: (Box)

width:; height:; float:; clear:both; margin:; padding:; 顺序:上右下左

边框属性: (Border)

border-style: dotted;(点线) dashed;(虚线) solid; double;(双线) groove;(槽线) ridge;(脊状) inset;(凹陷) outset;

border-width:; 边框宽度

border-color:#;

简写方法border:width style color; /*简写*/

列表属性: (List-style)

类型list-style-type: disc;(圆点) circle;(圆圈) square;(方块) decimal;(数字) lower-roman;(小罗码数字) upper-roman; lower-alpha; upper-alpha;

位置list-style-position: outside;(外) inside;

图像list-style-image: url(..);

定位属性: (Position)

Position: absolute; relative; static;

visibility: inherit; visible; hidden;

overflow: visible; hidden; scroll; auto;

clip: rect(12px,auto,12px,auto) (裁切)

css属性代码大全

一 CSS文字属性:

color : #999999; /*文字颜色*/

font-family : 宋体,sans-serif; /*文字字体*/

font-size : 9pt; /*文字大小*/

font-style:itelic; /*文字斜体*/

font-variant:small-caps; /*小字体*/

letter-spacing : 1pt; /*字间距离*/

line-height : 200%; /*设置行高*/

font-weight:bold; /*文字粗体*/

vertical-align:sub; /*下标字*/

vertical-align:super; /*上标字*/

text-decoration:line-through; /*加删除线*/

text-decoration: overline; /*加顶线*/

text-decoration:underline; /*加下划线*/

text-decoration:none; /*删除链接下划线*/

text-transform : capitalize; /*首字大写*/

text-transform : uppercase; /*英文大写*/

text-transform : lowercase; /*英文小写*/


 

二、CSS边框空白

padding-top:10px; /*上边框留空白*/

padding-right:10px; /*右边框留空白*/

padding-bottom:10px; /*下边框留空白*/

padding-left:10px; /*左边框留空白

三、CSS符号属性:

list-style-type:none; /*不编号*/

list-style-type:decimal; /*阿拉伯数字*/

list-style-type:lower-roman; /*小写罗马数字*/

list-style-type:upper-roman; /*大写罗马数字*/

list-style-type:lower-alpha; /*小写英文字母*/

list-style-type:upper-alpha; /*大写英文字母*/

list-style-type:disc; /*实心圆形符号*/

list-style-type:circle; /*空心圆形符号*/

list-style-type:square; /*实心方形符号*/

list-style-image:url(/dot.gif); /*图片式符号*/

list-style-position: outside; /*凸排*/

list-style-position:inside; /*缩进*/

四、CSS背景样式:

background-color:#F5E2EC; /*背景颜色*/

background:transparent; /*透视背景*/

background-image : url(/image/bg.gif); /*背景图片*/

background-attachment : fixed; /*浮水印固定背景*/

background-repeat : repeat; /*重复排列-网页默认*/

background-repeat : no-repeat; /*不重复排列*/

background-repeat : repeat-x; /*在x轴重复排列*/

background-repeat : repeat-y; /*在y轴重复排列*/

指定背景位置

background-position : 90% 90%; /*背景图片x与y轴的位置*/

background-position : top; /*向上对齐*/

background-position : buttom; /*向下对齐*/

background-position : left; /*向左对齐*/

background-position : right; /*向右对齐*/

background-position : center; /*居中对齐*/

五、CSS连接属性:

a /*所有超链接*/

a:link /*超链接文字格式*/

a:visited /*浏览过的链接文字格式*/

a:active /*按下链接的格式*/

a:hover /*鼠标转到链接*/

鼠标光标样式:

链接手指 CURSOR: hand

十字体 cursor:crosshair

箭头朝下 cursor:s-resize

十字箭头 cursor:move

箭头朝右 cursor:move

加一问号 cursor:help

箭头朝左 cursor:w-resize

箭头朝上 cursor:n-resize

箭头朝右上 cursor:ne-resize

箭头朝左上 cursor:nw-resize

文字I型 cursor:text

箭头斜右下 cursor:se-resize

箭头斜左下 cursor:sw-resize

漏斗 cursor:wait

光标图案(IE6) p {cursor:url(光标文件名.cur),text;}

六、CSS框线一览表:

以上是建议书写方式,但也可以使用常规的方式 如下:

border-top-color : #369 /*设置上框线top颜色*/

border-top-width :1px /*设置上框线top宽度*/

border-top-style : solid/*设置上框线top样式*/

其他框线样式

solid /*实线框*/

dotted /*虚线框*/

double /*双线框*/

groove /*立体内凸框*/

ridge /*立体浮雕框*/

inset /*凹框*/

outset /*凸框*/

七、CSS表单运用:

文字方块

按钮

复选框

选择钮

多行文字方块

下拉式菜单 选项1选项2

八、CSS边界样式:

margin-top:10px; /*上边界*/

margin-right:10px; /*右边界值*/

margin-bottom:10px; /*下边界值*/

margin-left:10px; /*左边界值*/

CSS 属性: 字体样式(Font Style)

序号 中文说明 标记语法

1 字体样式 {font:font-style font-variant font-weight font-size font-family}

2 字体类型 {font-family:字体1,字体2,字体3,...}

3 字体大小 {font-size:数值|inherit| medium| large| larger| x-large| xx-large| small| smaller| x-small| xx-small}

4 字体风格 {font-style:inherit|italic|normal|oblique}

5 字体粗细 {font-weight:100-900|bold|bolder|lighter|normal;}

6 字体颜色 {color:数值;}

7 阴影颜色 {text-shadow:16位色值}

8 字体行高 {line-height:数值|inherit|normal;}

9 字 间 距 {letter-spacing:数值|inherit|normal}

10 单词间距 {word-spacing:数值|inherit|normal}

11 字体变形 {font-variant:inherit|normal|small-cps }

12 英文转换 {text-transform:inherit|none|capitalize|uppercase|lowercase}

13 字体变形 {font-size-adjust:inherit|none}

14 字体 {font-stretch:condensed|expanded|extra-condensed|extra-expanded|inherit|narrower|normal| semi-condensed|semi-expanded|ultra-condensed|ultra-expanded|wider}

文本样式(Text Style)

序号 中文说明 标记语法

1 行 间 距 {line-height:数值|inherit|normal;}

2 文本修饰 {text-decoration:inherit|none|underline|overline|line-through|blink}

3 段首空格 {text-indent:数值|inherit}

4 水平对齐 {text-align:left|right|center|justify}

5 垂直对齐 {vertical-align:inherit|top|bottom|text-top|text-bottom|baseline|middle|sub|super}

6 书写方式 {writing-mode:lr-tb|tb-rl}

背景样式

序号 中文说明 标记语法

1 背景颜色 {background-color:数值}

2 背景图片 {background-image: url(URL)|none}

3 背景重复 {background-repeat:inherit|no-repeat|repeat|repeat-x|repeat-y}

4 背景固定 {background-attachment:fixed|scroll}

5 背景定位 {background-position:数值|top|bottom|left|right|center}

6 背影样式 {background:背景颜色|背景图象|背景重复|背景附件|背景位置}

框架样式(Box Style)

序号 中文说明 标记语法





 

3 边框宽度 {border-width:border-top-width border-right-width border-bottom-width border-left-width}

宽度值: thin|medium|thick|数值

4 边框颜色 {border-color:数值 数值 数值 数值}  数值:分别代表top、right、bottom、left颜色值

5 边框风格 {border-style:none|hidden|inherit|dashed|solid|double|inset|outset|ridge|groove}

6 边  框 {border:border-width border-style color}

上 边 框 {border-top:border-top-width border-style color}

右 边 框 {border-right:border-right-width border-style color}

下 边 框 {border-bottom:border-bottom-width border-style color}

左 边 框 {border-left:border-left-width border-style color}

7 宽  度 {width:长度|百分比| auto}

8 高  度 {height:数值|auto}

9 漂  浮 {float:left|right|none}

10 清  除 {clear:none|left|right|both}

分类列表

序号 中文说明 标记语法

1 控制显示 {display:none|block|inline|list-item}

2 控制空白 {white-space:normal|pre|nowarp}

3 符号列表 {list-style-type:disc|circle|square|decimal|lower-roman|upper-roman|lower-alpha|upper-alpha|none}

4 图形列表 {list-style-image:URL}

5 位置列表 {list-style-position:inside|outside}

6 目录列表 {list-style:目录样式类型|目录样式位置|url}

7 鼠标形状 {cursor:hand|crosshair|text|wait|move|help|e-resize|nw-resize|w-resize|s-resize|se-resize|sw-resize}

```

### 回答1: Qt是一个跨平台的应用程序开发框架,它提供了一种简单易用的UI设计方式,可以实现自定义的UI样式。下面是一种常用的实现方法: 1. 使用Qt的QWidget或QMainWindow作为主窗口,用来容纳其他UI元素。 2. 通过Qt Designer或手动编写代码创建UI界面,包括按钮、标签、文本框等控件。 3. 使用Qt提供的样式表(QSS)来改变UI的外观。样式表可以通过CSS风格的语法来定义UI元素的样式,包括颜色、字体、边框等。 4. 在代码中使用setStyleSheet()函数将样式表应用到特定的UI元素或整个应用程序中。 5. 使用Qt提供的信号与槽机制来处理用户交互。通过连接控件的信号与槽函数,可以实现与用户的交互,并在特定事件发生时改变UI的状态。 6. 使用Qt提供的绘图API来进行绘制和动画效果的实现。可以通过重写继承自QWidget的paintEvent()函数来进行绘制操作,或者使用Qt提供的动画框架来实现动画效果。 需要注意的是,QtUI样式实现方式有很多种,以上只是其中一种常用的方法。根据具体需求和个人喜好,可以根据Qt提供的丰富控件和功能来自定义实现自己想要的UI样式。 ### 回答2: QtUI样式可以通过以下几种方式来实现: 1. 使用Qt的内置样式表:Qt提供了一套内置的样式表,可以通过在QApplication对象中设置样式表来改变界面的外观。样式表使用CSS语法,可以通过设置不同的属性值来修改QWidget和QStyle的外观。例如,可以设置背景颜色、字体、边框等样式。 2. 自定义样式QtUI控件都支持自定义样式,可以通过修改控件的属性、使用paintEvent()函数来绘制控件的外观。自定义样式可以实现更加个性化的UI效果。 3. 使用第三方样式库:Qt提供了一些第三方样式库,如QSS、QDarkStyleSheet等,可以根据需要选择合适的样式库来美化界面。这些样式库提供了一些现成的样式模板,可以直接应用到QtUI控件上。 4. 使用图形效果框架:Qt还提供了一些图形效果框架,如Qt Quick和QGraphicsView等,可以使用这些框架来实现更加复杂的UI效果,如动画、渐变、视觉效果等。 无论使用哪种方式,需要先了解QtUI控件的层次结构,熟悉各种控件的属性和方法,然后根据需求选择合适的方式进行样式的实现。 ### 回答3: QtUI样式可以通过使用Qt Style Sheets来实现。Qt Style Sheets是一种类似于CSS的样式语言,它可以用于在Qt应用程序中定义和设置UI元素的样式。 要使用Qt Style Sheets,首先需要了解Qt的基本控件和属性。然后,可以通过在代码中设置一些默认样式,或者使用StyleSheet属性来一次性地为多个元素设置样式。 使用Qt Style Sheets,可以设置控件的背景颜色、文本颜色、字体样式、边框样式、大小等等。对于常见的控件,如按钮、标签、文本框等,可以通过设置QPushButton、QLabel、QLineEdit等控件的StyleSheet属性来修改其样式。 例如,要将按钮的背景颜色设置为红色,文本颜色设置为白色,可以使用以下代码: QPushButton { background-color: red; color: white; } 类似地,还可以设置滚动条、表格、列表等控件的样式Qt Style Sheets还支持伪状态和子控件选择器,以实现更加灵活和复杂的样式设置。 Qt Style Sheets 的语法和 CSS 类似,具有选择器、属性和值的结构。通过选择器,可以选择需要设置样式的控件或控件的子部件,并为其设置各种属性,以达到所需的样式效果。 总而言之,QtUI样式可以通过Qt Style Sheets来实现,该样式语言提供了丰富的控件样式设置选项,可以实现自定义和个性化的UI样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值