如何在布局中缩小QLabel图像?

时间:2015-05-04 00:19:49

标签: qt

我是Qt的新手,我试图制作一些10x24网格的一些.png文件。看起来像使用QGridLayout并用QLabel对象填充它是最好的方法,但QLabel似乎不会自动收缩以适应可用空间,所以我最终得到这个:

enter image description here

另外,我应该提到我使用的是我创建的QLabel的子类,并且这些对象是作为容器对象中数组的一部分创建的:

void ObjectSlotArray::initialize() {
first = FIRST; 
isCreated = false;
layout = new QGridLayout(this);
for (int c = 0; c < 10; c++) {
    array[c] = new ObjectSlot(c);
    layout->addWidget(array[c], (int)(c / 24), c % 24);
    array[c]->show();} }  //10x24 grid

2 个答案:

答案 0 :(得分:1)

使用:

array[c]->setScaledContents(true);

或者在ObjectSlot构造函数中:

setScaledContents(true);

答案 1 :(得分:0)

QLabel不会扩大其形象。您可以为标签类(或父容器)添加resize事件处理程序,这将在可用空间已知后缩放图像,然后将其分配给标签。