我是Qt的新手,我试图制作一些10x24网格的一些.png文件。看起来像使用QGridLayout并用QLabel对象填充它是最好的方法,但QLabel似乎不会自动收缩以适应可用空间,所以我最终得到这个:
另外,我应该提到我使用的是我创建的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
答案 0 :(得分:1)
使用:
array[c]->setScaledContents(true);
或者在ObjectSlot构造函数中:
setScaledContents(true);
答案 1 :(得分:0)
QLabel不会扩大其形象。您可以为标签类(或父容器)添加resize事件处理程序,这将在可用空间已知后缩放图像,然后将其分配给标签。