Qmainwindow 设置 标题栏背景颜色
时间: 2024-05-05 13:22:36 浏览: 268
可以通过重载 `QMainWindow` 中的 `paintEvent()` 方法来自定义标题栏的绘制,从而实现修改标题栏背景颜色的效果。具体实现步骤如下:
1. 在 `QMainWindow` 的子类中重载 `paintEvent()` 方法。
```cpp
void MyMainWindow::paintEvent(QPaintEvent *event) {
Q_UNUSED(event)
// 绘制标题栏背景
QPainter painter(this);
painter.fillRect(QRect(0, 0, width(), titleBarHeight()), QColor(100, 149, 237));
}
```
2. 在绘制方法中,使用 `QPainter` 绘制矩形来填充标题栏的背景颜色。
以上代码中的 `titleBarHeight()` 可以通过 `frameGeometry().top()` 获取到标题栏的高度,也可以通过自定义常量来指定。
完整的示例代码如下:
```cpp
#include <QMainWindow>
#include <QPainter>
class MyMainWindow : public QMainWindow {
public:
MyMainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {}
protected:
void paintEvent(QPaintEvent *event) override {
Q_UNUSED(event)
// 绘制标题栏背景
QPainter painter(this);
painter.fillRect(QRect(0, 0, width(), titleBarHeight()), QColor(100, 149, 237));
}
private:
int titleBarHeight() const {
return frameGeometry().top();
}
};
```
阅读全文