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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTextDocument проблемы с выводом на печать  (Прочитано 5925 раз)
skydion
Гость
« : Март 18, 2010, 15:16 »

Код:
QTextDocument doc;
QString out("<b>some html code</b>");

doc.setHtml(out);
doc.drawContents(&painter, rect);

Вот такой имею код в процедуре подготовки к печати страницы, нужно мне выводить
html-код... так ничего не выводит... вроде все просто и понятно, но... не работает.

пс. гуглил но ответа не нашел...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 18, 2010, 17:37 »

Больше кода приведи. Пока не понятно что за painter и что за rect.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
skydion
Гость
« Ответ #2 : Март 18, 2010, 18:41 »

Код:
void tableTemplateWidget::printPreview(QPrinter *prn)
{
    int pageW = prn->pageRect().width();
    int pageH = prn->pageRect().height();

    QPainter painter;
    painter.begin(prn);
    {
w = pageW - 5;
h = pageH - (imageH + 60) - (fm.height() + 20);
x = 0;
y = imageH+60;

QRect rect(x, y, w, h);
const QRectF rect1((qreal)x, (qreal)y, (qreal)w, (qreal)h);

painter.drawRect(rect);

QString text;

text = "<html><body>\n";
for (i = 0; i < count; i++)
{
   // заполняем text
}

        text += "</body></html>";

// здесь все работет текст выводится
painter.drawText(rect, Qt::TextWordWrap, text);

// здесь тестирую форматированый вывод
prn->newPage();
painter.drawRect(rect);
doc.setHtml(text);
doc.drawContents(&painter, rect1);
    }
    painter.end();
}

вот эта функция завязана на предпросмотр так

connect(printpreview, SIGNAL(paintRequested(QPrinter*)), grid, SLOT(printPreview(QPrinter*)));

все нормально работает, только doc.drawContents(&painter, questionsRectF) нифига не рисует...
doc объявлен в tableTemplateWidget...
« Последнее редактирование: Март 18, 2010, 18:43 от skydion » Записан
skydion
Гость
« Ответ #3 : Март 23, 2010, 21:08 »

То ли я неправильно понял для чего drawContents толи еще чего вывод пока, что сделал так

Код:
QTextOption to;
to.setWrapMode(QTextOption::WordWrap);
to.setAlignment(Qt::AlignJustify);

doc.setDefaultTextOption(to);

// QRectF clip(0, 0, w, h);
doc.setHtml(questions);
doc.setTextWidth(w);

painter.drawRect(questionsRect);
painter.translate(x, y);
doc.drawContents(&painter/*, clip*/);

Тоесть через свойства документа.
Хотя если задавать clip, всеравно ничего не выводит, зачем он там так и не понял.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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