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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Виджет внутри QTextBrowser  (Прочитано 4023 раз)
dd
Гость
« : Январь 17, 2011, 14:28 »

Задача вставить виджет в QTextBrowser, например кнопку.

Когда писал на wxWidgets, там тоже есть класс отображения порстого html.
Там можно задать пользовательский тег, привязать к нему любой виджет из программы
и отображать в странице просто вставив тег и размеры.

Есть ли что-нибудь подобное в QT? Сам пока не нашел.

Зачем мне это нужно? Хочу, чтобы в html странице кнопка нажималась.
Просто ссылка картинкой не прокатывает, ибо принажатии не изменяет своего вида.
Подключать WebKit не буду, слишком борльшой. Приложение для моб. устройств.

Спасибо за помощь.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Январь 17, 2011, 14:47 »

Цитировать
Есть ли что-нибудь подобное в QT? Сам пока не нашел.
Нет и скорее всего и не будет, т.к. есть в webKit-e.
Записан

Qt 5.11/4.8.7 (X11/Win)
dd
Гость
« Ответ #2 : Январь 17, 2011, 15:02 »

У вебкита и QTextBrowser - а разные задачи вообще.
Мой случай - наглядный пример, где этот функционал потребовался.
Если Вы не прочитали сообщение до конца, повторюсь: ради такой мелочи подключать вебкит не буду, ибо ограничен в ресурсах на КПК.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Январь 17, 2011, 15:07 »

Цитировать
Если Вы не прочитали сообщение до конца, повторюсь: ради такой мелочи подключать вебкит не буду, ибо ограничен в ресурсах на КПК.
Я всё прочитал и всё понял. Но реальность такова Грустный
Записан

Qt 5.11/4.8.7 (X11/Win)
twp
Гость
« Ответ #4 : Январь 17, 2011, 16:55 »

в Qt есть пример (Text Object Example) как вставлять кастом типы в QTextEdit, может поможет
Записан
dd
Гость
« Ответ #5 : Январь 17, 2011, 17:17 »

Я сейчас как раз ковыряю Text Object Example.
Вроде получается, отпишу как что.

-------------------------------

Короче разобрался.
Сделал c использованием QTextObjectInterface, QTextCharFormat итд. см Text Object Example в документации.
Создается новый тип символа, он добавляется в текст, попутно получив значения размеров.
При этом создается нужный виджет.
При перерисовке "символ" получает размеры и положение, которые шлет их сигналом куда надо.
Там, куда сигнал приходит, меняется размер и положение виджета поверх окна QTextBrowser::viewport()
короче как-то так. Получилось достаточно геморно, но другого выхода не вижу.

В итоге есть класс, наследованный от QTextBowser,у которого есть метод:
QTextBowser::AddDdWidget(QWidget*, QSize);

Этот метод добавляет виджет примерно так:

pBrowser->append("some text");
pBrowser->AddDdWidget(new QPushButton("Test"), QSize(100, 40));
pBrowser->append("some text");

« Последнее редактирование: Январь 17, 2011, 19:47 от dd » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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