Название: (РЕШЕНО) Потеря прозрачности виджетов на QGraphicsProxyWidget Отправлено: Гурман от Сентябрь 27, 2016, 18:03 Задача такая - виджеты расположены в дизайнере над QGraphicsView, затем при старте приложения они "переезжают" на QGraphicsProxyWidget-ы, лежащие на соответствующей QGraphicsScene. Такое нужно, чтобы можно было применить к виджетам любые трансформации - если они просто лежат centralWidget главного окна, то любыми способами их трансформировать невозможно. То, что нужно получилось, но когда виджет переезжает на QGraphicsProxyWidget, он почему-то теряет прозрачность. То есть, те его части, которые были прозрачны, становятся непрозрачными. Во всяком случае это так для виджетов, содержащих SVG графику. Как для родных из комплекта, так и добавленных.
Например, во вложении первый скрин - так выглядит окно приложения в Qt-дизайнере (стрелка - это самодельный SVG-виджет), а во втором вложении уже скрин запущенного приложения. Даже родной виджет с вращающейся ручкой потерял прозрачность. Пробовал запрещать заливку фона для QGraphicsView: Код: QGraphicsProxyWidget* gproxy = new QGraphicsProxyWidget; Может кто уже встречал в сети, как это побороть? Нужно, чтобы виджеты, лежащие на QGraphicsProxyWidget, который на самом деле, QGraphicsItem, были прозрачны там где нужно. Название: Re: Потеря прозрачности виджетов на QGraphicsProxyWidget Отправлено: Гурман от Сентябрь 27, 2016, 20:30 Всё, решено, надо перед привязкой виджета к QGraphicsProxyWidget установить виджету атрибут Qt::WA_NoSystemBackground. Почему-то при отвязке виджета от предыдущего родителя этот атрибут сбрасывается в false и бэкграунд вылазит. Нигде не описано.
|