Russian Qt Forum
Апрель 16, 2024, 17:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не работает прозрачность у QWidget, расположенного над QVideoWidget  (Прочитано 6145 раз)
mafia_al
Гость
« : Май 13, 2017, 13:05 »

Всем привет!

Реализовывал следующую задачу (Qt 5.8.0, компилер студийный 2015):
Мне нужно разместить над идущим видео полупрозрачную панельку с информацией о текущем видео. Видео я вывожу при помощи QMediaPlayer в QVideoWidget. Панель - мой собственный виджет, отнаследованный от QFrame.
Код:
class FrameInfoWidget : public QFrame
{
  ........
private:
    Ui::FrameInfoWidget *ui;
};
Прозрачность задаю ему в styleSheet.

Но столкнулся с проблемой:
Моя панель над видео не хочет быть прозрачной!!!


Как видно, над прочими виджетами панель прозрачна, а над видео потоком нет. Экспериментировал с разными типами для setAttribute не помогло Грустный

Кто-нибудь знает, в чём дело и как это обойти?
Записан
mafia_al
Гость
« Ответ #1 : Май 13, 2017, 17:03 »

Прозрачность сделать получилось, заменив QVideoWidget на QGraphicsVideoItem.
Но появился другой неприятный момент: исчезло сглаживание у видео Грустный

Записан
mafia_al
Гость
« Ответ #2 : Май 13, 2017, 17:23 »

Сглаживание сделать оказалось просто. Для QGraphicsView надо было задать соответствующие опции.

Код:
mVideoView->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::HighQualityAntialiasing);

Проблема решена.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Май 14, 2017, 00:29 »

Вы молодцы Улыбающийся
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.