创建一个类似画廊的"小部件(使用QListWidget
并添加QIcons)当源图像具有不同的宽高比时,我无法对齐项目。
QListWidget
对象初始化如下:
mListWidget->setViewMode (QListWidget::IconMode );
mListWidget->setResizeMode (QListWidget::Adjust );
mListWidget->setIconSize (QSize(100,100 ));
mListWidget->setAcceptDrops (true );
mListWidget->setDragEnabled (false );
然后添加每个新图标:
QListWidgetItem* item = new QListWidgetItem(QIcon(QPixmap(path)), path.split("/").last());
mListWidget->addItem(item);
结果如下:
正如您所看到的,不同元素的标签没有对齐,看起来很难看。有没有办法解决这个问题(例如,通过设置列表元素的高度而不是宽度)?
答案 0 :(得分:0)
然后添加以下代码:
item->setTextAlignment(Qt::AlignHCenter|Qt::AlignBottom);
item->setSizeHint(QSize(100, 120));
答案 1 :(得分:0)
您可以使用缩放方法并设置大小,并忽略以下显示的宽高比。
QImageReader imageReader("Image Path");
imageReader.setDecideFormatFromContent(true);
QImage styleIcon = imageReader.read();
QPixmap pixmap = QPixmap::fromImage(styleIcon);
QPixmap newPixmap = pixmap.scaled(QSize(80, 80), Qt::IgnoreAspectRatio);
QListWidgetItem* item = new QListWidgetItem(newPixmap, "");