Название: Виджет внутри QTextBrowser Отправлено: dd от Январь 17, 2011, 14:28 Задача вставить виджет в QTextBrowser, например кнопку.
Когда писал на wxWidgets, там тоже есть класс отображения порстого html. Там можно задать пользовательский тег, привязать к нему любой виджет из программы и отображать в странице просто вставив тег и размеры. Есть ли что-нибудь подобное в QT? Сам пока не нашел. Зачем мне это нужно? Хочу, чтобы в html странице кнопка нажималась. Просто ссылка картинкой не прокатывает, ибо принажатии не изменяет своего вида. Подключать WebKit не буду, слишком борльшой. Приложение для моб. устройств. Спасибо за помощь. Название: Re: Виджет внутри QTextBrowser Отправлено: GreatSnake от Январь 17, 2011, 14:47 Цитировать Есть ли что-нибудь подобное в QT? Сам пока не нашел. Нет и скорее всего и не будет, т.к. есть в webKit-e.Название: Re: Виджет внутри QTextBrowser Отправлено: dd от Январь 17, 2011, 15:02 У вебкита и QTextBrowser - а разные задачи вообще.
Мой случай - наглядный пример, где этот функционал потребовался. Если Вы не прочитали сообщение до конца, повторюсь: ради такой мелочи подключать вебкит не буду, ибо ограничен в ресурсах на КПК. Название: Re: Виджет внутри QTextBrowser Отправлено: GreatSnake от Январь 17, 2011, 15:07 Цитировать Если Вы не прочитали сообщение до конца, повторюсь: ради такой мелочи подключать вебкит не буду, ибо ограничен в ресурсах на КПК. Я всё прочитал и всё понял. Но реальность такова :(Название: Re: Виджет внутри QTextBrowser Отправлено: twp от Январь 17, 2011, 16:55 в Qt есть пример (Text Object Example) как вставлять кастом типы в QTextEdit, может поможет
Название: Re: Виджет внутри QTextBrowser Отправлено: dd от Январь 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"); |