QT开发中文网

QT中绘制一个矩形框带颜色

在 Qt 中,你可以通过重写 QWidgetpaintEvent() 方法来绘制一个带颜色的矩形框。下面是一个完整的示例,演示如何创建一个自定义窗口并在其中绘制一个彩色矩形框。

示例代码

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();               // 启动应用程序事件循环
}

编译和运行项目

  1. 创建 Qt 项目: 在 Qt Creator 中新建一个 C++ 项目。
  2. 添加代码: 将上述代码分别放入对应的 .h.cpp 文件中。
  3. 构建并运行: 构建项目后运行,你应该会看到一个包含蓝色填充和红色边框的矩形。

自定义内容

你可以根据需要调整以下内容:

  • 修改 setFixedSize() 中的参数以更改窗口大小。
  • 更改 fillColorborderColor 的值来使用不同的颜色。
  • 调整 QRect rect(x, y, width, height) 中的位置和尺寸,以改变矩形的位置和大小。

这种方法提供了非常灵活的方式来实现自定义图形,并且能够让你充分利用 Qt 的绘图能力。


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 示例代码
    • MyRectangleWidget.h
    • MyRectangleWidget.cpp
    • main.cpp
  • 编译和运行项目
  • 自定义内容
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=12945

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?