Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос с прорисовкой QTextDocument в файл???? 
:(
    Опции темы
GianSteps
Дата 19.5.2011, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет!!! есть следущая задача с которой я зашел в тупик!!!!
Имееться TextEdit где я набираю форматирую текст!!!! необходимо все что есть в етом TextEdit прорисовать в файл (например в .BMP) НО что-бы все прорисововалось одной строкой???? на данный момент у меня все прорисовуеться все как есть тоесть, если в Textedit несколько строк то они так и отображаються??????
Код


void MyWidget::mybuttonclick()
{

    document = new QTextDocument;
    document = textEdit->document();

    QFontMetrics metrics(textEdit->currentFont());

    QImage img(document->textWidth(),100,QImage::Format_Mono);
    img.fill(Qt::white);

    QPainter p(&img);
    p.save();

    QAbstractTextDocumentLayout *layout=document->documentLayout();
    QAbstractTextDocumentLayout::PaintContext ctx;

    QRect rect(0,0, document->textWidth(),100);
    p.setClipRect(rect);
    ctx.clip=rect;

     layout->draw(&p, ctx);

    img.save("new.bmp","BMP");
    p.restore();
}



и вот что получается: user posted image

а нужно чтобы весь текст прорисововался в ОДНУ строку!!!!

Заранее спасибо!!!!
PM MAIL   Вверх
xwicked
  Дата 19.5.2011, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

<Цикл начало> Построчно в QString загнать из QTextEdit с пробелами-разделителями</Цикл>
<Файл сохранение> и прорисовать QString  в файл(BMP).</Файл>

Хотя, тут, скорее всего, нужно что-то другое, чтобы форматирование сохранить.

Это сообщение отредактировал(а) xwicked - 19.5.2011, 20:49
PM MAIL WWW ICQ   Вверх
GianSteps
Дата 20.5.2011, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо!!!! уже разобрался!!!
 вот так вроде работает!!!!
Код


void MyWidget::ToImage(QTextDocument *document)
{


    QTextDocument *d = document->clone(this);
    d->setTextWidth(d->textWidth());

    QImage img(d->size().toSize(),QImage::Format_Mono);
  img.fill(Qt::white);
  QPainter p(&img);
  p.save();

 QAbstractTextDocumentLayout *l = d->documentLayout();
  QAbstractTextDocumentLayout::PaintContext ctx;

 QRect rect(0, 0, (int)d->size().width(), (int)d->size().height());
 p.setClipRect(rect);
 ctx.clip = rect;
 l->draw(&p, ctx);

 img.save("test.BMP", "BMP");
                    p.restore();
}

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

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

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


 




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


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

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