Qt的QTabWidget样式设置
QTabWidget
是 Qt 框架中用于创建选项卡式界面的控件。可以通过样式表(QSS
,Qt Style Sheets)来设置 QTabWidget
的外观。以下是一些常见的样式设置示例:
1. 基本样式设置
tab_widget.setStyleSheet("""
QTabWidget::pane {
border: 1px solid #ccc;
background-color: #f0f0f0;
}
QTabBar::tab {
background: #ddd;
border: 1px solid #ccc;
padding: 10px;
font-size: 14px;
}
QTabBar::tab:selected {
background: #f0f0f0;
border-bottom-color: #f0f0f0;
}
QTabBar::tab:hover {
background: #eee;
}
""")
2. 设置选项卡的宽度和高度
tab_widget.setStyleSheet("""
QTabBar::tab {
width: 100px;
height: 30px;
}
""")
3. 设置选项卡的圆角
tab_widget.setStyleSheet("""
QTabBar::tab {
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
""")
4. 设置选项卡的背景颜色和字体颜色
tab_widget.setStyleSheet("""
QTabBar::tab {
background: #555;
color: white;
}
QTabBar::tab:selected {
background: #777;
color: yellow;
}
""")
5. 设置选项卡的图标和文本对齐方式
tab_widget.setStyleSheet("""
QTabBar::tab {
padding-left: 20px; /* 图标和文本之间的间距 */
text-align: left; /* 文本左对齐 */
}
""")
6. 设置选项卡的关闭按钮
tab_widget.setStyleSheet("""
QTabBar::close-button {
image: url(close.png); /* 关闭按钮的图标 */
subcontrol-position: right; /* 关闭按钮的位置 */
}
QTabBar::close-button:hover {
background: #f00; /* 鼠标悬停时的背景颜色 */
}
""")
7. 设置选项卡的边框和间距
tab_widget.setStyleSheet("""
QTabWidget::pane {
border: 2px solid #ccc;
margin: 0px;
padding: 0px;
}
QTabBar::tab {
margin: 0px;
padding: 5px;
}
""")
8. 设置选项卡的渐变背景
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
}
""")
9. 设置选项卡的阴影效果
tab_widget.setStyleSheet("""
QTabBar::tab {
border: 1px solid #ccc;
border-bottom-color: #f0f0f0; /* 底部边框颜色 */
margin-right: 2px; /* 选项卡之间的间距 */
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1); /* 阴影效果 */
}
""")
10. 设置选项卡的字体
tab_widget.setStyleSheet("""
QTabBar::tab {
font-family: Arial;
font-size: 12px;
font-weight: bold;
}
""")
11. 设置选项卡的图标
tab_widget.setStyleSheet("""
QTabBar::tab {
icon-size: 24px; /* 图标大小 */
}
""")
12. 设置选项卡的悬停效果
tab_widget.setStyleSheet("""
QTabBar::tab:hover {
background: #eee;
color: #000;
}
""")
13. 设置选项卡的禁用状态
tab_widget.setStyleSheet("""
QTabBar::tab:disabled {
background: #ccc;
color: #888;
}
""")
14. 设置选项卡的选中状态
tab_widget.setStyleSheet("""
QTabBar::tab:selected {
background: #f0f0f0;
border-bottom-color: #f0f0f0;
}
""")
15. 设置选项卡的底部边框
tab_widget.setStyleSheet("""
QTabBar::tab {
border-bottom: 2px solid #ccc;
}
QTabBar::tab:selected {
border-bottom: 2px solid #f00;
}
""")
16. 设置选项卡的顶部边框
tab_widget.setStyleSheet("""
QTabBar::tab {
border-top: 2px solid #ccc;
}
QTabBar::tab:selected {
border-top: 2px solid #f00;
}
""")
17. 设置选项卡的左右边框
tab_widget.setStyleSheet("""
QTabBar::tab {
border-left: 2px solid #ccc;
border-right: 2px solid #ccc;
}
QTabBar::tab:selected {
border-left: 2px solid #f00;
border-right: 2px solid #f00;
}
""")
18. 设置选项卡的背景图片
tab_widget.setStyleSheet("""
QTabBar::tab {
background-image: url(tab_bg.png);
}
QTabBar::tab:selected {
background-image: url(tab_bg_selected.png);
}
""")
19. 设置选项卡的渐变边框
tab_widget.setStyleSheet("""
QTabBar::tab {
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
}
QTabBar::tab:selected {
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
}
""")
20. 设置选项卡的圆角边框
tab_widget.setStyleSheet("""
QTabBar::tab {
border: 1px solid #ccc;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
QTabBar::tab:selected {
border: 1px solid #f00;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
""")
21. 设置选项卡的阴影边框
tab_widget.setStyleSheet("""
QTabBar::tab {
border: 1px solid #ccc;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
QTabBar::tab:selected {
border: 1px solid #f00;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
""")
22. 设置选项卡的渐变背景和边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
}
""")
23. 设置选项卡的渐变背景和圆角边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
""")
24. 设置选项卡的渐变背景和阴影边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
""")
25. 设置选项卡的渐变背景和圆角阴影边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
""")
26. 设置选项卡的渐变背景和圆角阴影边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
""")
27. 设置选项卡的渐变背景和圆角阴影边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #ccc, stop: 1 #999);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
QTabBar::tab:selected {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 1 #f0f0f0);
border: 1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #f00, stop: 1 #c00);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
""")
28. 设置选项卡的渐变背景和圆角阴影边框
tab_widget.setStyleSheet("""
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 1px solid qlineargradient(x1