本文整理汇总了C++中QTextLine::descent方法的典型用法代码示例。如果您正苦于以下问题:C++ QTextLine::descent方法的具体用法?C++ QTextLine::descent怎么用?C++ QTextLine::descent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QTextLine
的用法示例。
在下文中一共展示了QTextLine::descent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cursor
void TestDocumentLayout::placeAnchoredFrame3()
{
// basic inline frame that acts like a really big character
initForNewTest(QString(loremIpsum));
MockShape *picture = new MockShape();
picture->setSize(QSizeF(100, 100));
KTextAnchor *anchor = new KTextAnchor(picture);
anchor->setAlignment(KTextAnchor::VerticalOffset);
anchor->setAlignment(KTextAnchor::HorizontalOffset);
QTextCursor cursor(doc);
KInlineTextObjectManager *manager = new KInlineTextObjectManager();
layout->setInlineTextObjectManager(manager);
MockLayoutState *state = new MockLayoutState(doc);
layout->setLayout(state);
state->shape = shape1;
manager->insertInlineObject(cursor, anchor);
layout->layout();
/*
I have two goals with 'offset'.
One is that I want to be able to change the baseline of my anchored object.
The other is that OOo / ODF allows me to have an arbitairy distance from my anchor
so I can place something at the center of my page or whatever.
So what about I switch from the first to the latter based on the font height.
If my offset 'x' != 0, make the image floating.
If my offset 'y' is such that it would be above or below my line; make floating.
*/
QTextLayout *lay = doc->begin().layout();
QVERIFY(lay->lineCount() >= 2);
QTextLine line = lay->lineAt(0);
QCOMPARE(line.descent(), (qreal) 100);
QCOMPARE(line.position(), QPointF());
line = lay->lineAt(1);
QVERIFY(line.height() < 20);
// now move the character which makes it a shape to run around and no longer
// a big character.
anchor->setOffset(QPointF(50, 20));
layout->layout();
lay = doc->begin().layout();
QVERIFY(lay->lineCount() >= 2);
line = lay->lineAt(0);
QVERIFY(line.height() < 20);
QCOMPARE(line.position(), QPointF());
line = lay->lineAt(1);
QVERIFY(line.height() < 20);
QCOMPARE(line.position().x(), 0.);
QVERIFY(qAbs(line.position().y() - 14.4) < 0.125);
}