QListWidgetItem未正确绘制

时间:2019-01-21 10:59:21

标签: c++ ios iphone qt qlistwidget

我在QListWidget中建立了CustomWidgets的诡计。到目前为止,它运行良好。 当我向下移动垂直滚动条并想要显示以前不可见的项目时,会出现问题。 然后将它们插入为透明矩形,我可以单击它们并响应单击,但未绘制它们。它们保持透明!

我插入一张图片来大致了解问题所在: enter image description here

在我的QListWidget中,我尝试重新绘制它,但是它不起作用:

QListWidget::verticalScrollbarValueChanged(value);
auto item = this->itemAt(QPoint(24, value));
if (!item)
{
    return;
}

auto widget = this->itemWidget(item);
if (!widget)
{
    return;
}

//    widget->resize(widget->size());
//    widget->repaint();
widget->update();

我该怎么办?感谢您的帮助!

编辑: 根据Martin的要求,我在此处插入一个例程,该例程显示了附加项:

void ListControl::AddCustomWidget(QWidget* customWidget, const QSize& size, bool forceSize)
{
    if (forceSize)
    {
        customWidget->adjustSize();
    }

    auto displaySize = customWidget->size();
    auto width = size.width();
    auto height = size.height();

    auto item = new QListWidgetItem(this);
    this->addItem(item);

    if (width >= 0)
    {
        displaySize.setWidth(width);
    }
    else
    {
        displaySize.setWidth(displaySize.width() - (this->verticalScrollBar()->width() + this->rightSpace));
    }

    if (height >= 0)
    {
        displaySize.setHeight(height);
    }

    item->setSizeHint(displaySize);
    this->setItemWidget(item, customWidget);
}

0 个答案:

没有答案