问题描述
在通过setStyleSheet
函数给控件设置外观的样式表时,发现设置以后样式并没有发送变化,并且触发控件时,输出以下内容(以QToolButton的点击为例)
报错的信息是:无法解析样式表的内容
代码:
m_qstrNormalBtnStyle = QString("QToolButton{background-color:#00BFFF;padding:0px;margin:2px;border:none;font-family:\"YouYuan\";font-size:14px;color:#222222;");
m_RectangleBtn.setStyleSheet(m_qstrNormalBtnStyle);
问题解决
遇到这种问题要检查自己的样式内容是否正确,通常是缺少括号或者分号
在我的问题里,#222222
后面缺少一个}
,补上以后就可以解决这个问题了
// 修改前
m_qstrNormalBtnStyle = QString("QToolButton{background-color:#00BFFF;padding:0px;margin:2px;border:none;font-family:\"YouYuan\";font-size:14px;color:#222222;");
// 修改后
m_qstrNormalBtnStyle = QString("QToolButton{background-color:#00BFFF;padding:0px;margin:2px;border:none;font-family:\"YouYuan\";font-size:14px;color:#222222;"});
还有一种情况也会引起报错,就是没有指名这段样式是应用在什么类型的控件上
比如下面这段代码:
// 错误的代码
m_qstrNormalBtnStyle = QString("{background-color:#00BFFF;padding:0px;margin:2px;border:none;font-family:\"YouYuan\";font-size:14px;color:#222222;}");
// 正确的代码
m_qstrNormalBtnStyle = QString("QToolButton{background-color:#00BFFF;padding:0px;margin:2px;border:none;font-family:\"YouYuan\";font-size:14px;color:#222222;"});
我的字符串最前面加了QToolButton
,所以可以正确解析!