QListWidgetItem отображается неправильно

Я создаю уловку CustomWidgets в QListWidget. Пока это работает хорошо. Проблема возникает, когда я перемещаю вертикальную полосу прокрутки вниз и хочу отобразить элементы, которые ранее не были видны. Потом они вставляются как прозрачные прямоугольники, я могу нажимать на них и реагировать на нажатия, но они не рисуются. Они остаются прозрачными!

Я вставляю картинку, чтобы получить общее представление о проблеме: QListWidgetItem отображается неправильно

В моем 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();

Что я могу сделать? Спасибо за помощь!

Обновлено: По просьбе Мартина я вставляю сюда подпрограмму, которая показывает добавление элементов:

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);
}

Это происходит только на айфоне или на десктопе тоже? Не могли бы вы предоставить минимальный компилируемый пример?

Martin Hennings 22.01.2019 14:01

Структура достаточно сложная. Я мог бы представить здесь добавление предметов. Потому что это (я думаю) ключевой момент

peter70 22.01.2019 14:50

Чего вы пытаетесь достичь, настраивая displaySize так, как вы это делаете? Вы отлаживали функцию и изучали, каким на самом деле становится displaySize? (Например, если ширина будет <= 0, это может привести к тому, что виджет не будет виден.)

Martin Hennings 22.01.2019 15:03

item->setSizeHint является критической индикацией. Если это сделать неправильно, то могут возникнуть проблемы. Метод, который я использую, дает мне наилучшие результаты. Я проверил DisplaySize, он всегда правильный. Кроме того, если я отмечаю элемент, рисуется синий маркер, но особое содержимое не отображается.

peter70 22.01.2019 15:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
129
0

Другие вопросы по теме