![]() |
|
![]() ![]() ![]() |
|
becks |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Добрый день!
Задача: Нужно в ячейках таблицы QTableView показывать html текст. Проблемы: 1) Текст не масштабируется по размерам ячейки, а располагается одной строкой. Хотелось бы, если текст не влезает в ячейку чтобы переносился. 2) Если в html есть ссылки, то при наведении на них и клике по ним нет никакой реакции. Хотелось бы в html вставлять элементы ссылок с надписью "Просмотр" и по клике на эту ссылку выполнялась некоторая Qt функция. Такое возможно? Вот реализация: HtmlDelegate.h
HtmlDelegate.cpp
Буду благодарен за любые подсказки. Спасибо. |
||||
|
|||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
IMHO тебе нужен не QTextDocument, а QTextBrowser, у которого есть сигнал anchorClicked А документ у него можно достать методом document() -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
becks |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Переделал на QTextBrowser, кое что еще поправил, теперь лучше, но теперь текст не отображается как html, выводит и теги. Что делаю не так?
|
||||
|
|||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
поставь точку останова на строке
скопируй содержимое options.text в буфер обмена, положи на форму QTextBrowser и в конструкторе формы вызови browser.setHtml( тот, текст, который скопировал в дебаге) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
becks |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Попробовал. Все отображается отлично. Попробовал даже с QTableWidget тоже все прекрасно отображается. Думаю может быть мне тогда заюзать setIndexWidget( QTextBrowser ), если уж нужен только просмотр и реакция на клик по ссылке, никакого редактирования (т.е. не использовать делегат)? Это сообщение отредактировал(а) becks - 5.12.2013, 10:40 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Не знаю как пацаны, а я не возражаю ![]() ![]() ![]() -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
becks |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 165 Регистрация: 6.7.2010 Репутация: нет Всего: нет |
Мужики, ничего не получается с этим делегатом, чего-то затрахался уже.
И отнаследоваться от QItemDelegate пробовал переопределив createEditor, setEditorData, setModelData. Ничего не выходит, ужас какой-то. Хотелось бы чтоб делегат был основан на QTextBrowser, поскольку anchorClicked отлично отлавливается, спасибо borisbn Поднимаю еще раз тему, прошу помощи. PS: Когда в QTableWidget все работает как тебе нужно, становится обидно, что столько времени потратил на MVC, не хотелось бы в итоге остановится на QTableWidget. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |