在 Qt 中,你可以通过重写 QWidget
的 paintEvent()
方法来绘制一个带颜色的矩形框。下面是一个完整的示例,演示如何创建一个自定义窗口并在其中绘制一个彩色矩形框。
示例代码
MyRectangleWidget.h
#ifndef MYRECTANGLEWIDGET_H
#define MYRECTANGLEWIDGET_H
#include <QWidget>
class MyRectangleWidget : public QWidget {
Q_OBJECT
public:
explicit MyRectangleWidget(QWidget *parent = nullptr);
protected:
void paintEvent(QPaintEvent *event) override; // 重写绘图事件
};
#endif // MYRECTANGLEWIDGET_H
MyRectangleWidget.cpp
#include "MyRectangleWidget.h"
#include <QPainter>
MyRectangleWidget::MyRectangleWidget(QWidget *parent)
: QWidget(parent) {
this->setFixedSize(400, 300); // 设置固定大小为 400x300 像素
}
void MyRectangleWidget::paintEvent(QPaintEvent *event) {
Q_UNUSED(event); // 忽略未使用的事件参数
QPainter painter(this); // 创建绘图对象
// 设置填充颜色和边框颜色
QColor fillColor(0, 162, 232); // 填充色 (蓝色)
QColor borderColor(255, 69, 0); // 边框色 (红色)
painter.setBrush(fillColor); // 设置填充颜色
painter.setPen(QPen(borderColor, 3)); // 设置边框颜色及宽度为3像素
QRect rect(50, 50, 300, 200); // 定义矩形区域:x=50, y=50,宽=300,高=200
painter.drawRect(rect); // 绘制矩形框
}
main.cpp
#include <QApplication>
#include "MyRectangleWidget.h"
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MyRectangleWidget w; // 创建自定义窗口实例
w.setWindowTitle("Draw Rectangle Example"); // 窗口标题设置
w.show(); // 显示窗口
return a.exec(); // 启动应用程序事件循环
}
编译和运行项目
- 创建 Qt 项目: 在 Qt Creator 中新建一个 C++ 项目。
- 添加代码: 将上述代码分别放入对应的
.h
和.cpp
文件中。 - 构建并运行: 构建项目后运行,你应该会看到一个包含蓝色填充和红色边框的矩形。
自定义内容
你可以根据需要调整以下内容:
- 修改
setFixedSize()
中的参数以更改窗口大小。 - 更改
fillColor
和borderColor
的值来使用不同的颜色。 - 调整
QRect rect(x, y, width, height)
中的位置和尺寸,以改变矩形的位置和大小。
这种方法提供了非常灵活的方式来实现自定义图形,并且能够让你充分利用 Qt 的绘图能力。
内容由零声教学AI助手提供,问题来源于学员提问
- MyRectangleWidget.h
- MyRectangleWidget.cpp
- main.cpp