我需要在盒子上绘制一个标签。
理想情况下,我想通过盒子的尺寸来缩放标签,但我不确定是否有内置的功能可以实现这种缩放。
目前,我将对象缩放到边界框的高度,但我不确定如何实现宽度缩放,因为绘制文本的宽度取决于符号的特定顺序(由于字距调整)。
是否有某些内置的功能可以实现这种缩放?
理想情况下,我想通过盒子的尺寸来缩放标签,但我不确定是否有内置的功能可以实现这种缩放。
目前,我将对象缩放到边界框的高度,但我不确定如何实现宽度缩放,因为绘制文本的宽度取决于符号的特定顺序(由于字距调整)。
是否有某些内置的功能可以实现这种缩放?
void total_control_roi_item::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
{
QGraphicsRectItem::paint(painter, option, widget);
painter->save();
const auto rect = boundingRect();
auto font = painter->font();
auto height_of_box = rect.height()*0.7;
font.setPointSizeF(height_of_box);
painter->setFont(font);
const auto label = QString("%1").arg(id_);
painter->drawText(rect, label, Qt::AlignHCenter | Qt::AlignVCenter);
painter->restore();
}
auto s = qMin(sx, sy);
以获得期望的缩放行为。 - Mikhail