QPainter()中的参数指针怎么指向指向另一个类
时间: 2024-05-08 13:21:43 浏览: 59
QPainter是一个Qt中的绘图类,它的构造函数通常需要传递一个指向QPaintDevice对象的指针作为参数。如果你想将QPainter对象指向另一个类的指针,你需要确保这个类继承自QPaintDevice,或者实现了QPaintDevice中的接口。
下面是一个例子,假设我们有一个名为MyWidget的类,它继承自QWidget,并实现了QPaintDevice中的接口:
```c++
class MyWidget : public QWidget, public QPaintDevice
{
// ...
};
```
在MyWidget的成员函数中,你可以创建一个QPainter对象并将它指向MyWidget的指针:
```c++
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this); // 创建一个QPainter对象并将其指向MyWidget的指针
// ...
}
```
在这个例子中,我们将QPainter对象的指针指向了MyWidget的指针this。如果你想将QPainter对象的指针指向另一个类的指针,只需要将QPainter的构造函数中的指针参数指向另一个类的指针即可。
相关问题
Qpainter默认构造函数的参数只能是this吗
`QPainter` 的默认构造函数的参数并不一定只能是 `this`。`QPainter` 构造函数的参数是一个指向 `QPaintDevice` 的指针,而不是必须是 `this` 指针。`QPaintDevice` 是一个抽象类,其子类包括 `QWidget`、`QPixmap`、`QImage` 等,这些类都可以作为 `QPainter` 构造函数的参数,以便为其创建绘图设备。因此,你可以在创建 `QPainter` 对象时,传递任何继承自 `QPaintDevice` 的对象的指针作为参数。
Qt代码:QPainter painter(this);this指针是QWidget,报错参数不完整,是什么原因?
这是因为QPainter的构造函数需要两个参数,第一个参数是指向QPaintDevice的指针,而第二个参数是可选的指向 QWidget 的指针。因为只提供了一个指向QWidget的指针,所以出现了参数不完整的错误。
阅读全文