Использование QPen, который является косметическим, но не шириной ноль - PullRequest
0 голосов
/ 17 апреля 2019

Я недавно перенес приложение из Qt 4 в Qt 5. Раньше я использовал значение по умолчанию QPen() с нулевой шириной, которое поэтому было косметическим.После миграции я не мог оставить его по умолчанию (перо по умолчанию изменилось на ширину 1 и поэтому не косметическое).Поэтому я просто добавил вызов setCosmetic(True), чтобы мои ручки были косметическими, но шириной 1.

Однако это привело к неожиданному (для меня) поведению.В частности, у меня было несколько QGraphicsEllipseItem объектов, которые давали неправильное поведение при выборе: в частности, очень маленький эллипс, масштабированный до большого размера, имел бы намного больший shape(), чем его рисовали.Она рисовалась с помощью косметического (1 пиксель) пера, но форма была рассчитана так, как если бы размер пера был увеличен.

Это легко исправить: я просто установил ширину QPen в 0.Но у меня возник вопрос:

Какова предполагаемая семантика косметической ручки с ненулевой шириной?Это поведение QGraphicsEllipseItem предназначено, и с полезным приложением, или это неожиданно?

1 Ответ

0 голосов
/ 17 апреля 2019

См. Документацию для QGraphicsItem::paint():

QGraphicsItem не поддерживает использование косметических ручек с ненулевой шириной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...