Как нарисовать QPixmap с закругленными углами?

Я унаследовал от QGraphicsPolygonItem и хотел бы нарисовать QPixmap поверх элемента. Сам элемент и растровое изображение должны быть нарисованы со скругленными углами.

Как бы вы это?


person Alexander Tyapkov    schedule 13.06.2014    source источник
comment
Проконсультировавшись с Meta Stackoverflow, я решил закрыть этот вопрос на основе этого обсуждения: meta.stackoverflow.com/questions/250204/ , хотя я согласен с @DominikSelzer в том, что это должно было быть простым поиском в Google. поиск.   -  person TheDarkKnight    schedule 13.06.2014
comment
Упомянутый ответ датирован 2011 годом, и этот ответ доказан за последние полчаса.   -  person Alexander Tyapkov    schedule 13.06.2014
comment
Доминик, я не спорю, что мой ответ отличается. Я хотел просто поделиться кратким, четким и актуальным ответом на вопрос, который невозможно найти на этом ресурсе. Кроме того, если вы нашли ответ при первом обращении, то, вероятно, потому, что вы уже знаете вопрос? Я работал в другой сфере, и на тот момент вопрос не был очевиден. В любом случае, если модераторы сочтут этот вопрос плохим, то всегда есть возможность его удалить.   -  person Alexander Tyapkov    schedule 13.06.2014
comment
Я рад, что вы нашли ответ на свою проблему. Мы все здесь, чтобы учиться и помогать. Но я должен мягко не согласиться, когда публикую вопросы, которые чрезвычайно связаны с вопросами, которые уже есть на SO, или с дубликатами из других известных ресурсов. Другое дело, что, по крайней мере, я думаю (и могу быть предвзятым), что на этот вопрос можно ответить даже при чтении API (как использовать кисти).   -  person OnWhenReady    schedule 13.06.2014
comment
@DominikSelzer IMO Я не думаю, что это в документах само по себе является хорошей причиной, чтобы закрыть вопрос. У нас есть 2.7. k точечный вопрос об использовании JavaScript strict, который также можно найти в документации JS. Если это чрезвычайно связано с вопросами, которые уже есть на SO, отметьте его как дубликат.   -  person Colonel Thirty Two    schedule 13.06.2014


Ответы (1)


Если вы хотите нарисовать QPixmap со скругленными углами, то внутри события рисования создайте QBrush из QPixmap и примените его к рисовальщику следующим образом:

painter->setRenderHint(QPainter::Antialiasing, true);
QBrush brush = QBrush(pixmap);
painter->setBrush(brush);
painter->drawRoundedRect(polygon().boundingRect(), 5, 5);
person Alexander Tyapkov    schedule 13.06.2014
comment
Почему вы задаете вопрос, на который сразу отвечаете и заведомо знаете ответ? - person TheDarkKnight; 13.06.2014
comment
Отметьте свой ответ как подходящий ответ. И вы получите баллы. Но это несправедливо. - person tro; 13.06.2014
comment
@DominikSelzer на самом деле разрешено и поощряется - person ratchet freak; 13.06.2014
comment
Я не думаю, что рекомендуется публиковать комбинацию вопрос/ответ, когда использование Google дает ответ в качестве первого обращения. Я думаю, что рекомендуется сначала искать ответ. qtcentral уже задокументировал ответ (см. мой комментарий к вопросу). Кроме того, даже на SO уже есть чрезвычайно связанный ответ на этот вопрос (stackoverflow.com/questions/6507511/). - person OnWhenReady; 13.06.2014
comment
@ Merlin069: Я думаю, что общая тенденция заключается в том, что на Stack Overflow, если информация полезна, это нормально, потому что основное лицо сайта занимается накоплением знаний, а соответствующие люди просто второстепенны. - person lpapp; 13.06.2014