QSS使用小结

2 篇文章 0 订阅

一.参考链接

样式表语法
盒子模型
参考工具:QssEditor(预览样式效果)

二.QSS文件调用代码

QFile file(sPath);//qrc:/style.qss
file.open(QFile::ReadOnly);
QTextStream filetext(&file);
QString stylesheet = filetext.readAll();
qApp->setStyleSheet(stylesheet);

三.问题发现及解决思路

A.样式表不能设置QMainWindow标题栏背景色(程序的最外层边框加载的是系统本地的窗口)。
自定义标题栏。
B.连续加载可能有干扰。
C.qss文件中文注释致无效(notepad++上编辑,UTF-8编码)。
“/第十二部分 QProgressBar进度条/”
初步测试结果,结尾“*/”前中文字为奇数个则失效,猜测引起乱码。

四.各控件总结

4.1 QTabWidget

A.解决QTabWidget的pane背景部分设置无效(border:solid,border: none)

tab为上方标题栏,通过QTabBar设置。
pane为下方主体,通过QTabWidget设置,中间可以加ID。

QTabBar::tab {
    background:rgb(38,38,38);
	height:30px;
	padding:2px 12px;
	color:#fff;
	border-width:0;
}
QTabBar::tab:selected {
    background: rgb(54,54,54);
	border-color: #9B9B9B;
    border-bottom-color: #C2C7CB;
}

QTabWidget::pane {
	background: rgb(38,38,38);
	border-style: solid;
}
QTabWidget#tabWidgetMenuBar::pane {
    border-top: 0px solid #eee;
    border-width:0;
	background: rgb(54,54,54);
	padding:1px 1px;
}

/*invalid*/
QTabWidget::tab-bar {
       background: rgb(0, 160, 230);
       border: 4px solid;
}

/*invalid*/
QTabBar#tabBar::tab {
        border: 1px solid rgb(45, 45, 45);
        border-bottom: none;
        background: transparent;
}
//ui->tabWidget->setStyleSheet("QTabBar::tab:!selected{color:gray;}");//black lightgray
ui->tabWidget->tabBar()->setStyleSheet("QTabBar::tab:!selected{color:gray;}");
//ui->tabWidget->tabBar()->setStyleSheet("tab:!selected{color:gray;}"); 无效

ui->tabWidget->setStyleSheet("QTabBar::tab:disabled {width: 0; color: transparent;}");

4.2 QDockWidget

通过字体大小和padding调节标题栏高度

QDockWidget {
    font-size:9pt;
}
QDockWidget::title {
    padding:2px;
	background-color:rgb(38,38,38);
}

4.3 QScrollArea

分QScrollArea及里层的QWidget、QScrollBar。
QScrollArea、QWidget背景色为白色。

QScrollArea{
    background:transparent;
}
QWidget#scrollAreaWidgetContents{
	background:transparent;
}
QScrollBar:vertical {
    width: 20px;
    background: transparent;
    margin-left: 3px;
    margin-right: 3px;
}
QScrollBar::handle:vertical {
    width: 20px;
    min-height: 30px;
    background: gray;
    margin-top: 15px;
    margin-bottom: 15px;
}
QScrollBar::handle:vertical:hover {
    background: lightgray;
}
QScrollBar::sub-line:vertical {
    height: 15px;
    background: transparent;
    subcontrol-position: top;
}
QScrollBar::add-line:vertical {
    height: 15px;
    background: transparent;
    subcontrol-position: bottom;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
    background: transparent;
}

4.4 QProgresssbar

设置进度条红色(trunk)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值