我创建了一个单独的类Card,即一个小部件。在类主窗口中,我有一个 listWidget。我正在尝试将卡片实例添加为项目。一旦卡片的数量超过了 listWidget 的大小,它不会让我向下滚动并显示所有项目,而是不会显示任何内容。但如果物品的数量允许全部放入,则一切都很好。下面是代码。如果有任何关于可能出现问题的想法,我们将不胜感激。
for(int i=0; i<6;++i) {
auto item = new QListWidgetItem();
auto widget = new Card(doctorName, doctorDepartment, doctorPicture);
item->setSizeHint(widget->sizeHint());
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item,widget);
}
ui->listWidget->setSpacing(5);
卡片类别:
Card::Card(QString DoctorN, QString DoctorD, QString DoctorP, QWidget *parent):
QWidget(parent),
ui(new Ui::Card)
{
ui->setupUi(this);
ui->labelBackground->setStyleSheet("image: url(:/backgrounds/Resources/Backgrounds/BCKGR_GreyCard.png);");
DoctorName=DoctorN;
DoctorDepartment=DoctorD;
DoctorPicture=DoctorP;
ui->labelDepartment->setText(DoctorDepartment);
ui->labelDoctorName->setText(DoctorName);
setDoctorPicture();
}
QSize Card::sizeHint() const {
return QSize(432, 114);
}
listWidget 设置:
ui->listWidget->setStyleSheet("background-color: rgba(255, 255, 255, 0);"
"color: rgba(255, 255, 255, 0);"
"border-color: rgba(255, 255, 255, 0);"
"image: none;");
ui->listWidget->setGeometry(390,150,501,561);
没有任何其他东西与卡片或列表小部件有关。另外,我已经在另一个项目中使用了完全相同的方法,一切都按照预期进行。所以我对这种情况真的很困惑。 (如果我设置我<5, 5 items will be displayed since they can all fit into the listWidget, but once I set i<6 or any other bigger number, nothing is displayed)
解决方案非常不可预测,我不知道这些东西之间有什么联系,但它是这样的: 最初,我在主窗口中央小部件的样式表中设置图像。不知何故,该图像不允许滚动条出现在listWidget中,因此删除中心图像中的图像后,所有内容都正确显示。