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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отрисовка виджетов поверх QWebView  (Прочитано 4780 раз)
Алёна_4_12_1989
Гость
« : Октябрь 12, 2012, 19:40 »

Здравствуйте. У меня следующая проблема. Класс MainWindow содержит два виджета:QWebView и графический класс с пользовательским интерефейсом, унаследованный от QWidget. Мне нужно иметь возможность отрисовывать свой графический класс поверх QWebView. Всё, что я смогла сделать - это указать своему классу родителя QWebView, но при этом ощущается заторможенность при выполнении действий в классе (видимо, потому что также вызывается paintEvent для QWebKita). Я слышала, что каким-то образом можно использовать setCurrentWidget() функцию в MainWindow, но не могу понять, как бы это сделать.
Т.е. мне нужно иметь два виджета, один из которых QWebView. У обоих виджетов парент - MainWindow. И надо, чтобы была возможность рисовать user interface поверх браузера. Можете что-нибудь подсказать? Спасибо.
Записан
Bepec
Гость
« Ответ #1 : Октябрь 12, 2012, 19:44 »

А вам самой/самому не кажется, что это кривое решение проблемы?

Поясните - что именно вам надо (цель, а не действия) и, возможно, вам предложат более привлекательный путь Улыбающийся
Записан
Алёна_4_12_1989
Гость
« Ответ #2 : Октябрь 12, 2012, 19:52 »

Спасибо, что откликнулись!
Целью того, что мне нужно сделать - это нарисовать графический интерфейс для удобной работы с кютешным браузером. Всесь интерфейс реализован в глобальном классе, который содержит разнообразные виджеты для работы - окна, эдиты, комбобоксы. Этот интерфейс нужно рисовать во время работы браузера. Но если не назначать этому интерфейсному классу родителем браузера, то все элементы GUI рисуются под браузером, и их не видно. Вот это и есть проблема. ЧТобы я могла видеть GUI вместе с браузером. ТАк понятнее? Спасибо.
Записан
Bepec
Гость
« Ответ #3 : Октябрь 12, 2012, 20:04 »

А вы уверены, что вам нужны виджеты НАД браузером?

Посмотрите на все браузеры которые сейчас имеются в наличии. Есть в них летающие над браузером элементы? Улыбающийся
Записан
Алёна_4_12_1989
Гость
« Ответ #4 : Октябрь 12, 2012, 20:08 »

Да, уверена на все 100. Просто мне необходимо понять, какими еще путями можно производить такую отрисовку.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #5 : Октябрь 12, 2012, 20:48 »

Вам хочется странного. Однако всё легко решается.

Создайте виджет, на него положите webview и ваши контролы, и этот виджет установите в mainwindow методом setCurrentWidget. Чтобы контролы плавали поверх webview - сделайте webview->lower().

webview можно добавить в лайаут, чтобы он растягивался по всему родителю, а вот контролы придётся позиционировать ручками в resizeEvent корневого виджета.
Записан

Гугль в помощь
Алёна_4_12_1989
Гость
« Ответ #6 : Октябрь 13, 2012, 09:37 »

Спасибо, попробую. Потом отпишусь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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