在qwidget四个角绘制矩形
时间: 2024-10-09 20:07:34 浏览: 32
在Qt的QWidget上绘制矩形通常是通过 QPainter 类来实现的,特别是当需要自定义窗口的样式或者添加一些装饰元素时。如果你想在四个角落绘制矩形,可以按照以下步骤操作:
1. 获取 QPainter 对象:首先从 QWidget 中获得 QPainter 的实例,这通常在 paintEvent() 方法中完成。
```cpp
void yourClass::paintEvent(QPaintEvent *event) {
QPainter painter(this);
}
```
2. 设置颜色和笔刷:选择你想绘制的矩形颜色和样式。
```cpp
painter.setPen(Qt::red); // 红色线条
painter.setBrush(Qt::blue); // 蓝色填充
```
3. 绘制矩形:使用 `drawRect()` 函数,并指定矩形的位置和大小。为了覆盖四个角落,你需要调整矩形的左上角、右上角、右下角和左下角坐标。
```cpp
// 计算角落点
int x = QApplication::globalCursorPos().x();
int y = QApplication::globalCursorPos().y();
// 可能的角落坐标示例
QPoint topLeft(x - 5, y - 5); // 左上角
QPoint topRight(x + widgetWidth() + 5, y - 5); // 右上角
QPoint bottomRight(x + widgetWidth() + 5, y + widgetHeight() + 5); // 右下角
QPoint bottomLeft(x - 5, y + widgetHeight() + 5); // 左下角
// 分别绘制每个矩形
painter.drawRect(topLeft, QSize(10, 10)); // 单独设置尺寸,这里是10x10像素
painter.drawRect(topRight, QSize(10, 10));
painter.drawRect(bottomRight, QSize(10, 10));
painter.drawRect(bottomLeft, QSize(10, 10));
```
记得在 `paintEvent()` 结束时调用 `painter.end();` 来结束绘画操作。
阅读全文