vux
Гость
|
|
« : Февраль 12, 2012, 19:40 » |
|
есть openGl виджет. Есть QLabel который расположен над ним. Вопрос Как сделать чтобы QLabel отображался только как текст - без прямоугольного виджета - то есть прозрачный?
|
|
|
Записан
|
|
|
|
spirits25
Гость
|
|
« Ответ #1 : Февраль 13, 2012, 08:16 » |
|
Попробуй image_lbl.setAttribute(QtCore.Qt.WA_NoSystemBackground) это в сях примерно image_lbl.setAttribute(Qt::WA_NoSystemBackground);
|
|
|
Записан
|
|
|
|
vux
Гость
|
|
« Ответ #2 : Февраль 13, 2012, 09:00 » |
|
не выходит. Область заполенена
|
|
|
Записан
|
|
|
|
|
vux
Гость
|
|
« Ответ #4 : Февраль 13, 2012, 09:34 » |
|
маской не получиться - это очень динамический qlabel
|
|
|
Записан
|
|
|
|
|
vux
Гость
|
|
« Ответ #6 : Февраль 13, 2012, 10:16 » |
|
А что мне это даст? Я питоном и pyqt вклиниваюсь в постороннюю программу. У нее есть OpenGl виджет. Есть также статусбар. Та вот я хочу отклеить статусбар и чтобы он прозрачно висел над OpenGL картинкой. Я уже пробывал и setAutoFillBackground и OpaquePaintEvent - не получаеться:( Это вообще реально в Qt?
|
|
|
Записан
|
|
|
|
|
vux
Гость
|
|
« Ответ #8 : Февраль 13, 2012, 11:34 » |
|
не олучаеться. Остаеться черный прямоугольник.
|
|
|
Записан
|
|
|
|
GreatSnake
|
|
« Ответ #9 : Февраль 13, 2012, 11:55 » |
|
А что мне это даст? Я питоном и pyqt вклиниваюсь в постороннюю программу. У нее есть OpenGl виджет. Есть также статусбар. Та вот я хочу отклеить статусбар и чтобы он прозрачно висел над OpenGL картинкой. Я уже пробывал и setAutoFillBackground и OpaquePaintEvent - не получаеться:( Это вообще реально в Qt?
И не получится, т.к. для Qt 'OpenGl виджет' чужой 'black-box' и он (Qt) не сможет сделать composing. Имхо, единственный портабельный способ - делать этот label top-level окном без декораций и как советовал _OLEGator_ применять маски.
|
|
|
Записан
|
Qt 5.11/4.8.7 (X11/Win)
|
|
|
vux
Гость
|
|
« Ответ #10 : Февраль 13, 2012, 12:51 » |
|
Хорошо. А можно маску по цвету. Я знаю какой цвет backgrounda - мне нада этот цвет убрать из QLabel
|
|
« Последнее редактирование: Февраль 13, 2012, 12:55 от vux »
|
Записан
|
|
|
|
GreatSnake
|
|
« Ответ #11 : Февраль 13, 2012, 12:56 » |
|
Хм, не понял чем это поможет. Не совсем понятна иерархия виджетов. Каким образом было встроено окно "посторонней программы" в окно вашей программы? И каким образом поверх этого чужого окна размещается этот label?
|
|
|
Записан
|
Qt 5.11/4.8.7 (X11/Win)
|
|
|
vux
Гость
|
|
« Ответ #12 : Февраль 13, 2012, 13:07 » |
|
Это не постороннее окно встроенное в мою программу. Это программа написанная на Qt - закрытая но имеет питон. Поэтому я установил PyQt и твикаю некоторые елементы интерфейса по своему. Все получаеться но эта проблема не решена. В этой программе есть виджет OpenGLный. Мне над ним, для экономии пространства, нада положить свой - для примера я взял просто QLabel. Это все легко решаеться. Но еслибы этот мой виджет был еще прозрачным и отображал только текст - былобы вообще супер
|
|
|
Записан
|
|
|
|
GreatSnake
|
|
« Ответ #13 : Февраль 13, 2012, 13:10 » |
|
Я знаю какой цвет backgrounda - мне нада этот цвет убрать из QLabel
C++ (Qt) QPalette palette; palette.setColor( label->backgroundRole(), background_color ); label->setPalette( palette );
|
|
|
Записан
|
Qt 5.11/4.8.7 (X11/Win)
|
|
|
vux
Гость
|
|
« Ответ #14 : Февраль 13, 2012, 14:40 » |
|
Вот так у меня сейчас. Хотелось бы только текст без прозрачного.
|
|
|
Записан
|
|
|
|
|