QT Creator ListWidget 无法正确显示项目

问题描述 投票:0回答:1

我创建了一个单独的类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)

qt qwidget qlistwidget qlistwidgetitem
1个回答
0
投票

解决方案非常不可预测,我不知道这些东西之间有什么联系,但它是这样的: 最初,我在主窗口中央小部件的样式表中设置图像。不知何故,该图像不允许滚动条出现在listWidget中,因此删除中心图像中的图像后,所有内容都正确显示。

© www.soinside.com 2019 - 2024. All rights reserved.