在 QListWidget 中显示大图
Display big image in QListWidget
我想用QListWidget
来显示大图,例如3508×4961像素大小,每个列表项显示一张图片。图像设置在 Qlabel
中,Qlabel
通过 setItemWidget()
设置到 QListWidgetItem
中。当我的程序是运行时,列表项无法显示整个图像,因为图像太大了。它只显示图像的上半部分。当我向下滚动时,列表项立即更改为下一张图像,而不是逐渐显示当前图像的下部。有谁知道如何通过滚动显示每个图像的下部?
这是我的代码,
QImage *image = new QImage("/home/sk/image1.png");
QLabel *label = new QLabel;
label->setPixmap(QPixmap(QPixmap::fromImage(*image)));
QListWidgetItem *ite = new QListWidgetItem;
auto size = label->sizeHint();
ite->setSizeHint(label->sizeHint());
size = ite->sizeHint();
ui->listWidget->addItem(ite);
ui->listWidget->setItemWidget(ite, label);
image = new QImage("/home/sk/image2.png");
label = new QLabel;
label->setPixmap(QPixmap(QPixmap::fromImage(*image)));
ite = new QListWidgetItem;
ite->setSizeHint(label->sizeHint());
ui->listWidget->addItem(ite);
ui->listWidget->setItemWidget(ite, label);
image = new QImage("/home/sk/image3.png");
label = new QLabel;
label->setPixmap(QPixmap(QPixmap::fromImage(*image)));
ite = new QListWidgetItem;
ite->setSizeHint(label->sizeHint());
ui->listWidget->addItem(ite);
ui->listWidget->setItemWidget(ite, label);
您是否尝试过将 scroll mode 更改为 ScrollPerPixel
setVerticalScrollMode
和
setHorizontalScrollMode
ui->listWidget->setVerticalScrollMode(QListWidget::ScrollPerPixel);
为了改变滚动步长
ui->listWidget->verticalScrollBar()->setSingleStep(10);
ui->listWidget->verticalScrollBar()->setPageStep(20);
这些值将用于滚动
我想用QListWidget
来显示大图,例如3508×4961像素大小,每个列表项显示一张图片。图像设置在 Qlabel
中,Qlabel
通过 setItemWidget()
设置到 QListWidgetItem
中。当我的程序是运行时,列表项无法显示整个图像,因为图像太大了。它只显示图像的上半部分。当我向下滚动时,列表项立即更改为下一张图像,而不是逐渐显示当前图像的下部。有谁知道如何通过滚动显示每个图像的下部?
这是我的代码,
QImage *image = new QImage("/home/sk/image1.png");
QLabel *label = new QLabel;
label->setPixmap(QPixmap(QPixmap::fromImage(*image)));
QListWidgetItem *ite = new QListWidgetItem;
auto size = label->sizeHint();
ite->setSizeHint(label->sizeHint());
size = ite->sizeHint();
ui->listWidget->addItem(ite);
ui->listWidget->setItemWidget(ite, label);
image = new QImage("/home/sk/image2.png");
label = new QLabel;
label->setPixmap(QPixmap(QPixmap::fromImage(*image)));
ite = new QListWidgetItem;
ite->setSizeHint(label->sizeHint());
ui->listWidget->addItem(ite);
ui->listWidget->setItemWidget(ite, label);
image = new QImage("/home/sk/image3.png");
label = new QLabel;
label->setPixmap(QPixmap(QPixmap::fromImage(*image)));
ite = new QListWidgetItem;
ite->setSizeHint(label->sizeHint());
ui->listWidget->addItem(ite);
ui->listWidget->setItemWidget(ite, label);
您是否尝试过将 scroll mode 更改为 ScrollPerPixel
setVerticalScrollMode
和
setHorizontalScrollMode
ui->listWidget->setVerticalScrollMode(QListWidget::ScrollPerPixel);
为了改变滚动步长
ui->listWidget->verticalScrollBar()->setSingleStep(10);
ui->listWidget->verticalScrollBar()->setPageStep(20);
这些值将用于滚动