qt - 样式表与自定义样式冲突
问题描述
我使用我创建的类创建了一种样式,它通常为该项目中使用的所有按钮提供某种样式......但在某些情况下,我需要在按钮的样式上添加更多内容。所以我使用了样式表,这使得一些样式消失了(比如背景颜色)
原始结果:
样式表添加:
border-radius: 5px;
border: 1px solid red;
结果:
样式类:标题:
#ifndef MYSTYLE_H
#define MYSTYLE_H
#include <QPalette>
#include <QProxyStyle>
#include <QStyleFactory>
class MyStyle : public QProxyStyle {
Q_OBJECT
public:
MyStyle();
explicit MyStyle(QStyle *style);
QStyle *baseStyle() const;
void polish(QPalette &palette) override;
private:
QStyle *styleBase(QStyle *style = Q_NULLPTR) const;
};
#endif // MYSTYLE_H
资源:
#include "mystyle.h"
MyStyle::MyStyle() : MyStyle(styleBase()) {}
MyStyle::MyStyle(QStyle *style) : QProxyStyle(style) {}
QStyle *MyStyle::baseStyle() const { return styleBase(); }
QStyle *MyStyle::styleBase(QStyle *style) const
{
static QStyle *base =
!style ? QStyleFactory::create(QStringLiteral("Fusion")) : style;
return base;
}
void MyStyle::polish(QPalette &palette)
{
palette.setColor(QPalette::Button, QColor(53, 53, 53));
palette.setColor(QPalette::ButtonText, Qt::white);
}
解决方案
推荐阅读
- python - 在一个单元格中读取具有多个值的 csv
- python-3.x - 如何将帖子转换为 Json - Django
- angular - 谷歌注册的 aws-amplify 集成问题
- arrays - 由 c 中另一个数的每个 k 位组成的数
- typescript - 扩展类时如何使用基于属性的注入
- python - 如何在python中将png文件转换为wsq?
- c# - upgrading a dependency in MongoDB driver
- java - 如何配置 RestTemplate 以与不同的 URL 和响应实体一起使用?
- azure - Azure Canary 部署 - 使用变量进行增量
- scala - 断言错误是否返回相应的列表位置而不是对象?