Поиск:

Ответ в темуСоздание новой темы Создание опроса
> колонки в QTextEdit 
:(
    Опции темы
s_a_s_h_a
Дата 19.3.2011, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 20.7.2004
Где: Петрозаводск

Репутация: нет
Всего: 1



Хочу доработать имеющейся в qt пример "Text Edit", а именно добавить возможность разбивать текст на колонки. Пробую работать с таблицей. Например, если указываю, что нужно 3 колонки, то создаю таблицу с 3 столбцами.
Код

QTextTableFormat tf;
tf.setBorder(2);
tf.setCellPadding(30);
QTextCursor cursor = textEdit->textCursor();
if (!cursor.hasSelection())
        cursor.select(QTextCursor::WordUnderCursor);
cursor.insertTable(1,3,tf);

Создается замечательно, а дальше проблема. Необходимо, чтобы можно было объединить ячейки (если пользователь решил уменьшить количество колонок), а как обратиться к этой таблице я не знаю :(
1. Как обратиться к таблице в qtextedit? причем именно к выделенной, ибо в тексте может быть несколько таблиц.
2. Если есть идеи как реализовать работу с колонками по-другому, поделитесь, пожалуйста.
3. в QTextTableFormat есть setCellPadding и setCellSpacing, они дают отступ со всех 4 сторон, а мне нужно только слева и справа. Подправить html в момент создания таблицы?
PM MAIL   Вверх
_GRIN_
Дата 19.3.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



s_a_s_h_a, то что лежит вроде бы на поверхности (в документации):
Цитата(s_a_s_h_a @  19.3.2011,  14:39 Найти цитируемый пост)
1. Как обратиться к таблице в qtextedit? причем именно к выделенной, ибо в тексте может быть несколько таблиц.

Код

QTextEdit  textEdit;
QTextCursor*textCursot = textEdit->textCursor();
QTextTable*textTable = textCursor->currentTable();
QTextTableFormat*textTableFormat = textTable->format();


Цитата(s_a_s_h_a @  19.3.2011,  14:39 Найти цитируемый пост)
3. в QTextTableFormat есть setCellPadding и setCellSpacing, они дают отступ со всех 4 сторон, а мне нужно только слева и справа. Подправить html в момент создания таблицы? 


"...Cells within the table are separated by cell spacing. The number of pixels between cells is set with setCellSpacing() and read with cellSpacing(). The contents of each cell is surrounded by cell padding. The number of pixels between each cell edge and its contents is set with setCellPadding() and read with cellPadding(). "


Соответственно обнуляем пендинг. Затем 
void QTextTableFormat::setAlignment ( Qt::Alignment alignment )
и он выравнивает по середине.

З.Ы. код не проверял

Это сообщение отредактировал(а) _GRIN_ - 19.3.2011, 17:08


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
s_a_s_h_a
Дата 24.3.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 20.7.2004
Где: Петрозаводск

Репутация: нет
Всего: 1



хм, вроде уже пытал currentTable, но делал что-то не так, сейчас получилось. Спасибо.
А выравнивание по центру не подойдет, так не красиво

      строка 1                строка 3333
   строка  22222             строка 4
PM MAIL   Вверх
s_a_s_h_a
Дата 26.3.2011, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 20.7.2004
Где: Петрозаводск

Репутация: нет
Всего: 1



а как получить содержимое ячейки? 
в QTextTableCell проверял firstCursorPosition и lastCursorPosition, не получилось :(
PM MAIL   Вверх
s_a_s_h_a
Дата 26.3.2011, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 20.7.2004
Где: Петрозаводск

Репутация: нет
Всего: 1



разобрался вроде сам 
Код

cellAt(row,column).begin().currentBlock().text()

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0745 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.