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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как html отправить в preview?  (Прочитано 8010 раз)
volkov9999
Гость
« : Август 25, 2010, 20:36 »

Здравствуйте.
Знаю что просто, но не смог допереть и найти что-то подходящее... В замешательстве
Есть  QString c  html кодом . Будьте добры показать пример как отправить код на предпросмотр.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Август 25, 2010, 21:10 »

QTextBrowser, если покруче то QWebView (подключив QtWebKit). Простой код можно отображать в QLabel.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
volkov9999
Гость
« Ответ #2 : Август 26, 2010, 01:43 »

Воспользовался QTextBrowser примером вот отсюда http://www.qtcentre.org/wiki/index.php?title=QTextBrowser_with_images_and_CSS.
Нарисовать хтмл документ - могу без проблем, хоть в дивах, а как в превью засунуть таки и не понимаю  Плачущий
Записан
Denjs
Гость
« Ответ #3 : Август 27, 2010, 13:08 »

есть стандартный виджет препросмотра - QPrintPreviewDialog .
у него есть сигнал paintRequested(QPrinter*) который надо подключить к чему-либо, что будет способно что-то нарисовать на этом самом QPrinter*. Испуская этот сигнал виджет препросмотра хочет что бы ему там нарисовали, что собственно ему отображать и потом печатать.

У техт-браузера и текст-едитора есть метод print(QPrinter *). в этот метож надо подсунуть то, на чем надо "нарисовать себя".
Рисует он соответсвенно "то, что в него положено" - как plain-text так и rtf/html.
Это и делается в void printForm::printPreviewNeeds(QPrinter *_printer).

Код:
    QTextEdit *cTextEdit;
    QPrintPreviewDialog *prDialog;

Код:
t_printForm::t_printForm(QObject *parent) :
    QWidget(parent)
{
...
    cTextEdit = new QTextEdit();
...
    QPushButton *doPreviewAndPrint= new QPushButton();
    doPreviewAndPrint->setText("Препросмотр\n и печать");
    QObject::connect(doPreviewAndPrint,SIGNAL(clicked()),this,SLOT(printPreview()));
...
    prDialog = new QPrintPreviewDialog(new QPrinter(QPrinter::HighResolution));
    connect(prDialog,SIGNAL(paintRequested(QPrinter*)),this,SLOT(printPreviewNeeds(QPrinter*)));
...
}

...
//--------------------------------------------------------------------------
//[SLOT]
void t_printForm::printPreview()//запустить окно предварительной печати
{
    prDialog->exec();
}

...
//--------------------------------------------------------------------------
//[SLOT]
void t_printForm::printPreviewNeeds(QPrinter *_printer)
{
    cTextEdit->print(_printer);
}

А вообще - не ленитесь читать подсистему помощи QAssistant - там довольно понятно изложено. пусть и на английском...
Это все выше практически 1:1 передрано с мануалов и примеров кода оттуда.
Удачи Подмигивающий
« Последнее редактирование: Август 27, 2010, 13:20 от Denjs » Записан
volkov9999
Гость
« Ответ #4 : Август 31, 2010, 03:13 »

Denjs   -  Да прибудет с тобой ВЕЛИКАЯ СИЛА !!!    Веселый Веселый  Веселый Веселый Веселый Веселый Веселый
Записан
andrew.k
Гость
« Ответ #5 : Сентябрь 15, 2010, 15:44 »

Подскажите, у меня в QPrintPreviewDialog русский текст выводится кракозябрами.
Какую кодировку использовать? в чем может быть проблема?
Записан
Denjs
Гость
« Ответ #6 : Сентябрь 15, 2010, 17:04 »

Подскажите, у меня в QPrintPreviewDialog русский текст выводится кракозябрами.
Какую кодировку использовать? в чем может быть проблема?
Какая операционная система, какая версия QT, какая кодировка локали, нормально ли у вас оно тображается на виджете, какие используете установки в setCodefFor****()?
Записан
andrew.k
Гость
« Ответ #7 : Сентябрь 23, 2010, 09:48 »

Подскажите, у меня в QPrintPreviewDialog русский текст выводится кракозябрами.
Какую кодировку использовать? в чем может быть проблема?
Какая операционная система, какая версия QT, какая кодировка локали, нормально ли у вас оно тображается на виджете, какие используете установки в setCodefFor****()?
ОС: МСВС, QT: 4.4.3, локаль: кои8 (как узнать?), на виджете не нормально, setCodecForCStrings( кои8 ) и ForLocale (кои8);
Исходники соответственно в кои8.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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