我想绘制一个与父级的左上角对齐的字符。
QGraphicsTextItem * tItem = new QGraphicsTextItem(parent);
tItem->setPlainText("a");
tItem->setPos(QPointF(0,0));
下面的图片显示了我的代码的输出(灰色矩形是QGraphicsTextItem的父对象)
结果:
我想得到这样的结果:
我的梦想结果:
我尝试使用Qt :: AlignLeft和Qt :: AlignTop,但无济于事。
答案 0 :(得分:0)
解决方案是在setDocumentMargin(0)
上使用QTextDocument
,如果仅输入字母“ a”,这似乎不是解决方案,因为似乎存在垂直偏移,但实际上它不是偏移量,但大写字母的高度更高。
示例:
#include <QApplication>
#include <QGraphicsTextItem>
#include <QGraphicsView>
#include <QTextDocument>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
auto parent = scene.addRect(QRectF(0, 0, 100, 100), QPen(Qt::red), QBrush(Qt::blue));
auto * tItem = new QGraphicsTextItem(parent);
tItem->setPlainText("aAbB");
tItem->document()->setDocumentMargin(0);
view.show();
return a.exec();
}