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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTextEdit - как получить HTML код таблицы, на которой стоит курсор?  (Прочитано 3673 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Июль 21, 2009, 20:09 »

Здравствуйте!


Что-то целый день промучился, так и не смог понять, как сделать следующее.

В QTextEdit находится документ, в котором есть таблицы. Я хочу сделать кнопочку, при нажатии которой в консоль выдавался бы HTML код таблицы, в ячейке которой стоит в данный момент курсор.

Основная проблема в том, что я никакими методами не могу получить (в любом представлении) кусок документа, который занимает таблица. А так же не могу сделать select() между двумя нужными мне позициями в документе, так как select() может выделять только весь документ, блок на котором находится курсор (в одной только ячейке может быть несколько блоков), строку, на которой находится курсор, слово, на котором находится курсор...

Как решить сию задачу?
Записан

Собираю информацию по крупицам
http://webhamster.ru
Rcus
Гость
« Ответ #1 : Июль 21, 2009, 20:40 »

В статье Assistant -> "Rich Text Document Structure" говорится о том что таблицы являются подтипом фрейма, текущий фрейм можно получить у курсора, а потом апкастом узнать таблица ли это(QTextTable). А дальше не копал.
Записан
Makss
Гость
« Ответ #2 : Июль 21, 2009, 20:41 »

ну например можно сделать так

У QTextEdit ловишь сигнал cursorPositionChanged(const QTextCursor & cursor)

потом делаешь так
Код:
if(cursor.currentTable()) {
    //значит твоя мышка в бталице
    QTextCursor cur(cursor);

    QTextTable *table = cursor.currentTable();

    cur.setPosition(table->firstCursorPosition().position() - 1, QTextCursor::MoveAnchor);
    cur.setPosition(table->lastCursorPosition().position() + 1, QTextCursor::KeepAnchor);

    QTextDocumentFragment fragment(cur);

    QString html = fragment.toHtml(); //HTML код таблицы
}

ну вот так примерно))
« Последнее редактирование: Июль 22, 2009, 08:14 от Makss » Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #3 : Июль 21, 2009, 20:59 »

Спасиба Rcuss

Makss, ты меня спас!
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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