【发布时间】:2020-11-06 07:15:48
【问题描述】:
problelm 我正在尝试将 QGraphicsTextItem 定位在我的 QGraphicsScene 的特定位置,准确地说是在下方速度计的中心。但是我尝试过的任何东西似乎都无法正常工作。尽管我清楚地提供了我想要QGraphicsTextItem 的坐标,但它仍然锚定在左上角,如下所示:
代码的sn-p下面:
speedwidget.cpp
SpeedWidget::SpeedWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::SpeedWidget)
{
ui->setupUi(this);
mScene = new Scene(this);
ui->graphicsView->setScene(mScene);
io = new QGraphicsTextItem;
io->setPos(210,240);
QFont *f = new QFont;
f->setPointSize(18);
io->setFont(*f);
mScene->addText("Odometer :")->setDefaultTextColor(Qt::red);
mScene->addItem(io);
}
speedwidget.h
class SpeedWidget : public QWidget
{
Q_OBJECT
public:
SpeedWidget(QWidget *parent = nullptr);
~SpeedWidget();
private:
Ui::SpeedWidget *ui;
Scene *mScene;
QGraphicsTextItem *io;
};
#endif // SPEEDWIDGET_H
到目前为止我尝试解决的问题是:
-
我咨询了this post,它解释了这个想法,但在这个例子中我不需要更改背景颜色。
-
This one 有一个很好的 sn-p,但我不想突出颜色。我只是想将文本定位在特定位置。
-
如果我更改
io->setPos(210,240);并给出不同的数字,我仍然会看到它锚定在左上角。
感谢您指出解决此问题的正确方向。
【问题讨论】:
标签: c++11 qt5 qgraphicsview qgraphicsscene qgraphicstextitem