Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 16:56   #1
der_igel
Пользователь
 
Регистрация: 25.12.2012
Сообщений: 29
По умолчанию Qt48 Отмена печати Ошибка

Приветствую.
Выбираю печать в файл. Когда выводится окно о запросе имени файла, закрыть это окно, то выводится ошибка в консоль.
Цитата:
QWin32PrintEngine::begin: StartPage failed (Неверный дескриптор.)
QPainter::begin(): Returned false
В чём может быть проблема?

вот похожая тема.
http://www.prog.org.ru/index.php?topic=8204.msg44144

Последний раз редактировалось der_igel; 28.05.2013 в 16:59. Причина: уточнение
der_igel вне форума Ответить с цитированием
Старый 28.05.2013, 17:20   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Проблема в том, что
Цитата:
Неверный дескриптор
По идее, если вы нажмете "отмена", то у дескриптора будет значение NULL. Дам вам совсем "детский" совет - проверяйте входные/выходные данные на корректность!
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 28.05.2013 в 17:25.
ROD вне форума Ответить с цитированием
Старый 29.05.2013, 10:19   #3
der_igel
Пользователь
 
Регистрация: 25.12.2012
Сообщений: 29
По умолчанию

Конкретно в данном случае какие данные проверять на корректность?
Самое забавное в том что аналогичная ошибка вылазит если собрать demo textedit из поставки вместе с Qt484.
der_igel вне форума Ответить с цитированием
Старый 29.05.2013, 11:01   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

В данном случае входные данные это то, что вам возвращает ваш диалог (Вы пользуетесь QFileDialog или чем-то еще ?), а выходные - то, что вы отправляете на печать (передаете объекту отвечающему за печать).

Если речь идет о demo textedit, то (я смотрел демо для QT 4.8) там вроде бы есть проверка входных данных

Код:
void TextEdit::fileOpen()
 {
     QString fn = QFileDialog::getOpenFileName(this, tr("Open File..."),
                                               QString(), tr("HTML-Files (*.htm *.html);;All Files (*)"));
     if (!fn.isEmpty())//Кажется тут
         load(fn);
 }
Что бы не гадать на кофейной гуще - покажите свой участок кода, который работает с файловым диалогом.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 29.05.2013 в 11:08.
ROD вне форума Ответить с цитированием
Старый 29.05.2013, 11:37   #5
der_igel
Пользователь
 
Регистрация: 25.12.2012
Сообщений: 29
По умолчанию

Код:
QPrinter printer;
QStringList strL_page;  //Инициализировано раньше

printer.setFromTo(1 ,strL_page.count());
    QPrintDialog printDialog(&printer);
    if  (printDialog.exec()){
        printer.setPageSize(QPrinter::A4);

        QPainter painter(&printer);
        QWebView view;
        QWebPage *page;
        QWebFrame *frame;

        for (int i = printer.fromPage(); (i < printer.toPage() && i < strL_page.count()); ++i) {
            view.setHtml(strL_page.at(i));
            page = view.page();
            page->setViewportSize(QSize(800,1200));
            frame = page->mainFrame();
            frame->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff);
            frame->render(&painter);
            if (i + 1 < strL_page.count() && i + 1  < printer.toPage())
                printer.newPage();
            delete page;
        }

    }

Может проверка в demo и есть, но всё равно в консоль сыплет ошибки, и продолжает работать.
der_igel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка по выбору документов для печати 5036113 Microsoft Office Excel 1 01.04.2013 14:45
ошибка печати на Canon mp130 SkifAY Компьютерное железо 0 11.09.2011 22:00
Ошибка печати Jesus56 Компьютерное железо 1 06.08.2010 01:41
Ошибка при двусторонней печати! ЛисЁНЫШ Общие вопросы Delphi 0 13.05.2010 19:49
отмена печати на принтере в Delphi Юliana Общие вопросы Delphi 2 29.01.2008 19:51