【发布时间】:2015-05-04 22:33:45
【问题描述】:
我是 Qt 新手,我正在尝试制作一些 .png 文件的 10x24 网格。似乎使用 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
【问题讨论】:
-
一般说明:QGraphicsView 的东西传统上用于您似乎拥有的视图。或者,使用 Qt Quick 2 (QML) 将是一种更现代或类似 Qt5 的方法。只要您只有一个图像网格,QWidgets 就应该可以工作,但是一旦您开始想要很多移动项目、一些图形效果等,您的代码就会开始变得混乱。
-
感谢您的提醒。我正在制作的这个应用程序中的大多数项目都不会改变位置,所以希望我会没事的。
标签: qt