在QLabel刻度内创建数据以适应它的高度

时间:2015-04-23 09:16:31

标签: c++ qt

我在 QLabel 中显示一些数据,如下图所示

enter image description here

标签是矩形的,尺寸为 100x100 像素,我逐行显示 for loop 内的数据,如下所示

 for (int i = 0; i < winSize; i++)
    {
        for (int j = 0; j < winSize; j++)
        {            
            int val = val1[counter];

            label->setFont(m_labelFont);

            label->setText(label->text() + " " + QString::number(val));

            counter = counter + 1;
        }

        label->setText(this->text() + "\n");
    }

数据上方和下方的空白区域看起来很糟糕,我想以某种方式缩放线条以使内容适合标签的高度。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码在QLabel中定义文本格式:

QLabel* yourLabel = new QLabel();
yourLabel->setTextFormat(Qt::RichText);
yourLabel->setText(<your html formatted text>)

在这里查看http://doc.qt.io/qt-5/richtext-html-subset.html以获得支持html标签的子集!

答案 1 :(得分:1)

尝试使用line-height CSS propery:

label->setFont(m_labelFont);
for (int i = 0; i < winSize; i++)
{
    QString line = "<p style=\"line-height:100\">";
    for (int j = 0; j < winSize; j++)
    {            
        int val = val1[counter];
        line += QString::number(val) + " ";
        counter = counter + 1;
    }
    line += "</p>";
    label->setText(label->text() + line);
}

另外,请考虑删除包含标签的布局的内容边距:

layout()->setContentsMargins(0, 0, 0, 0);

enter image description here