qt 把一个类的QPainter放到另一个类的窗口中
时间: 2024-05-14 19:18:55 浏览: 79
Qt 两个窗口相互切换
5星 · 资源好评率100%
你可以在另一个类中创建一个成员函数,该函数将QPainter对象作为参数,并在其内部使用QPainter绘制所需的内容。然后,在使用该类的窗口中,你可以在paintEvent函数中调用该成员函数,并将QPainter对象作为参数传递。这样,你就可以在另一个类的窗口中绘制所需的内容。
以下是一个示例代码:
在另一个类中创建成员函数:
```cpp
class AnotherClass {
public:
void draw(QPainter* painter) {
painter->setPen(QPen(Qt::red, 2));
painter->drawRect(0, 0, 50, 50);
}
};
```
在使用该类的窗口中调用该函数:
```cpp
void MyWindow::paintEvent(QPaintEvent* event) {
QPainter painter(this);
AnotherClass another;
another.draw(&painter);
}
```
在这个示例中,我们在AnotherClass中创建了一个名为draw的函数,该函数使用QPainter对象绘制一个红色的矩形。然后,在MyWindow类的paintEvent函数中,我们创建了一个QPainter对象,并将其传递给AnotherClass的draw函数。在draw函数中,我们使用QPainter对象绘制所需的内容。最后,在MyWindow类的paintEvent函数中,我们不需要手动调用painter.end()函数,因为QPainter对象是在函数作用域结束时自动销毁的。
希望这可以帮助到你!
阅读全文