crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Помогите нарисовать линию, QTextLine
grio
  опции профиля:
сообщение 10.3.2010, 2:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Как бы ни смешно это звучало, нужна помощь в рисовании линии в QTextDocumet.
Знаю один простой способ: cursor.insertHtml("<hr>");,
но он, к сожалению, не подходит, потому что образуется большой отступ от предыдущей строки текста.

Пытаюсь нарисовать иначе, делаю, например, так:

cursor.insertBlock();
QTextLayout *layout = cursor.block().layout();
layout->beginLayout();
QTextLine line = layout->createLine();
if (line.isValid()){
           line.setPosition(QPointF(0, 0));
           line.setLineWidth(200);
           }
layout->endLayout();


Но этот код результатов не дает.
Подскажите, как правильно, плиз.

В догонку. Вот такой еще способ придумал,
QTextCharFormat tcf_bgblack;
tcf_bgblack.setBackground(Qt::black);
tcf_bgblack.setFontPointSize(1);
....
tbl_body->cellAt(0,0).setFormat(tcf_bgblack);

К сожалению тоже не годится, потому что линия получается слишком толстая.

Парни, ну не картинку же вставлять?

Сообщение отредактировал grio - 10.3.2010, 10:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.3.2010, 12:35
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(grio @ 10.3.2010, 2:39) *
tcf_bgblack.setFontPointSize(1);


Тип qreal.
1 - 1.0
0.1 - в десять раз тоньше
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 10.3.2010, 14:09
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(SABROG @ 10.3.2010, 13:35) *
Цитата(grio @ 10.3.2010, 2:39) *
tcf_bgblack.setFontPointSize(1);


Тип qreal.
1 - 1.0
0.1 - в десять раз тоньше


пробовал 0.1 и 1 нет отличий в отбражении :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.3.2010, 14:27
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(grio @ 10.3.2010, 2:39) *
Парни, ну не картинку же вставлять?


Ну можно не вставлять, можно нарисовать :) по аналогии с "Text Object Example", там через QPainter (drawObject()) рисуется svg, а можно рисовать свою линию.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 10.3.2010, 21:04
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(SABROG @ 10.3.2010, 15:27) *
Цитата(grio @ 10.3.2010, 2:39) *
Парни, ну не картинку же вставлять?


Ну можно не вставлять, можно нарисовать :) по аналогии с "Text Object Example", там через QPainter (drawObject()) рисуется svg, а можно рисовать свою линию.


Хотелось бы вместо извращений, разобраться QTextLine все же.
Он ведь создан именно под эту задачу, если я правильно понимаю.
Неужели ни кто им не пользовался до меня в этих целях?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.3.2010, 21:54
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(grio @ 10.3.2010, 21:04) *
в этих целях?


Рисование чего бы то ни было вместо текста под который класс и предназначен?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 10.3.2010, 22:57
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(SABROG)
Рисование чего бы то ни было вместо текста под который класс и предназначен?


Ну хорошо, а как тогда разработчики планировали отображать линии?
Каким средствами, к примеру, происходит отображение тэга <hr>?

Дело в том, что пример с заливкой ячейки таблицы цветом вполне корректен c технической точки зрения,
если бы не грабли с минимальными отступами. Которые, почему то не убираются даже при такой постановке:
 QTextTableFormat tableFormat;
         tableFormat.setCellPadding(0);
         tableFormat.setCellSpacing(0);
         tableFormat.setMargin(0);
         tableFormat.setLeftMargin(0);
         tableFormat.setRightMargin(0);
         tableFormat.setTopMargin(0);
         tableFormat.setBottomMargin(0);
         tableFormat.setBorder(0);


Сообщение отредактировал grio - 10.3.2010, 23:12
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.4.2020, 8:25