Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xintrea от Июль 21, 2009, 20:09



Название: QTextEdit - как получить HTML код таблицы, на которой стоит курсор?
Отправлено: xintrea от Июль 21, 2009, 20:09
Здравствуйте!


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

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

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

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


Название: Re: QTextEdit - как получить HTML код таблицы, на которой стоит курсор?
Отправлено: Rcus от Июль 21, 2009, 20:40
В статье Assistant -> "Rich Text Document Structure" говорится о том что таблицы являются подтипом фрейма, текущий фрейм можно получить у курсора, а потом апкастом узнать таблица ли это(QTextTable). А дальше не копал.


Название: Re: QTextEdit - как получить HTML код таблицы, на которой стоит курсор?
Отправлено: Makss от Июль 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 код таблицы
}

ну вот так примерно))


Название: Re: QTextEdit - как получить HTML код таблицы, на которой стоит курсор?
Отправлено: xintrea от Июль 21, 2009, 20:59
Спасиба Rcuss

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