最终效果
1.创建一个ui页面,修改背景颜色
鼠标右键->改变样式表->添加颜色->background-color->选择合适的颜色->ok->Apply->ok
重新运行就可以看到widget的背景颜色已经改好
2.创建一个自定义的widget窗口小部件类,class MyChart : public QWidget
mychart.h
#ifndef MYCHART_H
#define MYCHART_H#include <QWidget>
#include <QPainter>
#include <QString>struct DataNode
{int value;QString key;
};// MyChart继承自QWidget类,是一个窗口小部件。
class MyChart : public QWidget
{Q_OBJECT
public:// `explicit` 是 C++ 中的一个关键字,用于修饰类的构造函数,表示该构造函数只能用于显式地创建对象,不能被隐式地调用。// 只能通过MyChart painter = MyChart(parent)的方式显式地创建一个 `MyChart` 对象:// `parent` 参数的默认值为 `nullptr`,这表示如果没有提供父部件的指针,那么 `MyChart` 就没有父部件,即它是一个独立的窗口部件。explicit MyChart(QWidget *parent = nullptr);void updateValue(const DataNode &node);protected:// `paintEvent(QPaintEvent *event)` 是一个事件处理函数,// 在 Qt 框架中,当需要重绘窗口部件时就会自动触发 `paintEvent(QPaintEvent *event)` 函数,// 以便开发者可以实现窗口部件的绘制逻辑,从而更新窗口的显示内容。// 在窗口需要进行重绘时,Qt 框架会自动调用 `MyChart` 对象的 `paintEvent(QPaintEvent *event)` 函数,从而实现图表的绘制更新。// 由于 `paintEvent` 函数是在需要重绘窗口部件时自动调用的,因此我们不需要手动调用它。// 当然,如果需要手动更新窗口部件的显示内容,// 也可以使用 `QWidget` 类中提供的 `update()` 函数或 `repaint()` 函数来触发 `paintEvent` 函数的调用,// 从而实现窗口的重绘。但通常情况下,Qt 框架会自动处理窗口部件的刷新和重绘。// `paintEvent` 函数是在 `QWidget` 类中定义的虚函数,// 它被设计为在窗口部件需要重新绘制时自动调用,以便让程序员有机会对窗口的内容进行绘制修改。// 在 `QWidget` 子类中,如果需要修改默认的绘制行为,则可以重写 `paintEvent`