继承 QObject、 QGraphicsItem显示字
时间: 2023-08-05 17:04:20 浏览: 86
您可以通过以下代码创建一个继承自QObject和QGraphicsItem的类来显示字:
```
class MyTextItem : public QObject, public QGraphicsItem
{
Q_OBJECT
public:
explicit MyTextItem(QGraphicsItem *parent = nullptr) : QGraphicsItem(parent) {}
QRectF boundingRect() const override
{
return QRectF(0, 0, 100, 20);
}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter->drawText(boundingRect(), Qt::AlignCenter, "Hello World!");
}
};
```
在这个类中,我们重载了QGraphicsItem的两个虚函数boundingRect()和paint(),分别用于指定该图形项的边界矩形和绘制它的内容。在paint()函数中,我们使用QPainter绘制了一个居中的"Hello World!"文本。
您可以在您的QGraphicsScene中创建一个MyTextItem的实例并添加到场景中,例如:
```
MyTextItem *textItem = new MyTextItem();
scene->addItem(textItem);
```
这样就可以在场景中显示"Hello World!"文本了。
阅读全文