本文整理汇总了C++中Style::angle方法的典型用法代码示例。如果您正苦于以下问题:C++ Style::angle方法的具体用法?C++ Style::angle怎么用?C++ Style::angle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Style
的用法示例。
在下文中一共展示了Style::angle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: textSize
QSizeF AdjustColumnRowManipulator::textSize(const QString& text, const Style& style) const
{
QSizeF size;
DummyWidget dummyWiget;
const QFontMetricsF fontMetrics(style.font(), &dummyWiget);
// Set size to correct values according to
// if the text is horizontal, vertical or rotated.
if (!style.verticalText() && !style.angle()) {
// Horizontal text.
size = fontMetrics.size(0, text);
double offsetFont = 0.0;
if ((style.valign() == Style::Bottom) && style.underline())
offsetFont = fontMetrics.underlinePos() + 1;
size.setHeight((fontMetrics.ascent() + fontMetrics.descent() + offsetFont)
*(text.count('\n') + 1));
} else if (style.angle() != 0) {
// Rotated text.
const double height = fontMetrics.ascent() + fontMetrics.descent();
const double width = fontMetrics.width(text);
size.setHeight(height * ::cos(style.angle() * M_PI / 180)
+ qAbs(width * ::sin(style.angle() * M_PI / 180)));
size.setWidth(qAbs(height * ::sin(style.angle() * M_PI / 180))
+ width * ::cos(style.angle() * M_PI / 180));
} else {
// Vertical text.
qreal width = 0.0;
for (int i = 0; i < text.length(); i++)
width = qMax(width, fontMetrics.width(text.at(i)));
size.setWidth(width);
size.setHeight((fontMetrics.ascent() + fontMetrics.descent())
* text.length());
}
return size;
}