Название: Прозрачность окна Отправлено: vunshpunsh от Март 11, 2009, 00:17 Доброй ночи!
Наследую класс myClass от QGraphicsView. Добавляю в его конструкторе сцену QGraphicsScene с созданными Item'ами в мейне делаю: Код: myClass my; Пробовал разные варианты, описанные на форуме: безрезультатно. Добрые люди, пожалуйста, помогите разобраться! Название: Re: Прозрачность окна Отправлено: vunshpunsh от Март 19, 2009, 23:15 Нашел решение, может кому надо....
Промучившись с QGraphic... плюнул и сделал следующее: Главное окно отнаследовал от QLabel, устанавил ему маску и QPixmap (setMask и setPixmap). QPixmap - png файл с автопрозрачностью (как в примерах книг по QT, где окно делается в виде летающей тарелки). Взял QPainter и отрисовал движущиеся объекты, используя таймер. Отловил сигналы мышькой покоординатно. Все это, конечно, долго, но результат желаемый был достигнут. Для пущего понимания можно заглянуть в пример Concentric Circles qtDemo. Название: Re: Прозрачность окна Отправлено: xaaw от Март 23, 2009, 22:08 Попробуй взять у QGraphicsView обьект QPalete и определить в ней роль backgroundRole
путем передачи цвета(QColor) c альфа каналом, после чего засунь QPalete обратно в QGraphicsView Название: Re: Прозрачность окна Отправлено: vunshpunsh от Март 24, 2009, 15:13 this - QGraphicsView
Так не работает: Код: QPalette p = this->palette(); Так тоже: Код: this->setStyleSheet("background: transparent"); Название: Re: Прозрачность окна Отправлено: Sergeich от Март 24, 2009, 23:55 Излагаю свой опыт по данной теме: Если у топ левел виджета поставить атрибут транслюцент и флаг фреймлессхинт, то получится действительно полупрозрачный виджет. Если флаг фреймлессхинт не ставить - то хуй. Например, если модифицировать кутевый екзампл widgets/shapedclock вот таким образом:
Код: int main(int argc, char *argv[]) Название: Re: Прозрачность окна Отправлено: Sergeich от Март 25, 2009, 17:22 Короче, вот изменный main.cpp из Qt/examples/graphicsview/gragdroprobot, там все работает как заказывал:
Код: #include <QtGui> Название: Re: Прозрачность окна Отправлено: vunshpunsh от Март 25, 2009, 23:13 Круто!
Только вот границы сцены видны... От них можно как-то избавиться? Название: Re: Прозрачность окна Отправлено: Sergeich от Март 26, 2009, 00:47 хз.. у мну под хренью с классической темой не видно. Попрбуй либо палитру полностью до транспарента додрочить либо QStyle другой выстави.
Название: Re: Прозрачность окна Отправлено: vertuozzo от Февраль 12, 2010, 16:04 Круто! Решается следующим образом - после Только вот границы сцены видны... От них можно как-то избавиться? Код: QGraphicsView view(&scene); Код: view.setFrameStyle(QFrame::NoFrame); Название: Re: Прозрачность окна Отправлено: GreatSnake от Март 11, 2010, 10:10 Под стандартными X11 всё это работать не будет, т.к. для не прямоугольных окон нужно использовать XShapeExtension.
Хотя может будет работать, если включить Compiz, но не уверен. |