У меня есть список QListWidgetItem в QListWidget (полоса прокрутки Hor там, так как количество элементов огромно). Каждый QListWidgetItem содержит QPixmap в качестве данных (уменьшен до некоторого случайного значения). Мое требование - щелкнуть QPixmap, который должен быть выделен (округленный прямоугольник ширины щетки 10). Я передаю каждый QListWidgetItem в QItemDelegate. У меня здесь пара вопросов.Картина на QPixmap, которая находится в QListWidget
Как нарисовать закругленный прямоугольник QPixmap, когда выбран соответствующий QListWidgetItem?
Вышеупомянутое событие краски должно происходить при нажатии кнопки QPixmap (не в других частях QListWidgetItem). Поскольку QPixmaps имеют разные размеры, верхняя и нижняя часть QPixmaps в QListWidgetItem будут пустыми, и щелчок там также вызовет ItemDelegate. Как избавиться от этого выбора?
Спасибо за ответ. Я также сделал что-то подобное в ListWidget. При покраске измененного Qpixmap в listItem в методе Delegate :: paint() нам нужно указать координаты, в которых рисуется QPixmap. Мой вопрос заключается в том, как найти эти координаты, так как мой QPixmap выравнивается по центру. option.rect(). x() и y() задает значение левого координаты элемента. Есть ли способ выравнивания центра краски? или нам нужно вычислить вручную? –
У меня возникли проблемы с выяснением того, что вы делаете :-) Возможно, вы можете быть более конкретным с тем, что вы делаете с QPixmap, и почему вам нужны координаты для чего угодно. –
Позвольте мне рассказать о моей реальной проблеме. В каждом listItem у меня есть QPixmap. Каждый QPixmap имеет переменные размеры. Если я нажму кнопку listItem, соответствующее изображение должно быть выделено таким образом, чтобы вокруг этого изображения было обращено Rounded rect. Итак, в методе обработки делегата я получаю данные (QPixmap) и рисую закругленный прямоугольник вокруг него. Затем я хочу нарисовать обновленный QPixmap в элементе ListWidgetItem в Центре. Для рисования QPixmap нам нужно указать QRect. В любом случае мы можем вручную вычислить геометрию для выравнивания по центру, но я хочу знать, есть ли лучший подход –