Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Алёна_4_12_1989 от Октябрь 12, 2012, 19:40



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


Название: Re: Отрисовка виджетов поверх QWebView
Отправлено: Bepec от Октябрь 12, 2012, 19:44
А вам самой/самому не кажется, что это кривое решение проблемы?

Поясните - что именно вам надо (цель, а не действия) и, возможно, вам предложат более привлекательный путь :)


Название: Re: Отрисовка виджетов поверх QWebView
Отправлено: Алёна_4_12_1989 от Октябрь 12, 2012, 19:52
Спасибо, что откликнулись!
Целью того, что мне нужно сделать - это нарисовать графический интерфейс для удобной работы с кютешным браузером. Всесь интерфейс реализован в глобальном классе, который содержит разнообразные виджеты для работы - окна, эдиты, комбобоксы. Этот интерфейс нужно рисовать во время работы браузера. Но если не назначать этому интерфейсному классу родителем браузера, то все элементы GUI рисуются под браузером, и их не видно. Вот это и есть проблема. ЧТобы я могла видеть GUI вместе с браузером. ТАк понятнее? Спасибо.


Название: Re: Отрисовка виджетов поверх QWebView
Отправлено: Bepec от Октябрь 12, 2012, 20:04
А вы уверены, что вам нужны виджеты НАД браузером?

Посмотрите на все браузеры которые сейчас имеются в наличии. Есть в них летающие над браузером элементы? :)


Название: Re: Отрисовка виджетов поверх QWebView
Отправлено: Алёна_4_12_1989 от Октябрь 12, 2012, 20:08
Да, уверена на все 100. Просто мне необходимо понять, какими еще путями можно производить такую отрисовку.


Название: Re: Отрисовка виджетов поверх QWebView
Отправлено: navrocky от Октябрь 12, 2012, 20:48
Вам хочется странного. Однако всё легко решается.

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

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


Название: Re: Отрисовка виджетов поверх QWebView
Отправлено: Алёна_4_12_1989 от Октябрь 13, 2012, 09:37
Спасибо, попробую. Потом отпишусь.