Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Примерный ученик от Сентябрь 07, 2012, 10:35



Название: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 07, 2012, 10:35
Код:
#ifndef QT_NO_PRINTER
    
QPrinter *printer;
printer=new QPrinter(QPrinter::HighResolution );
     printer->setFullPage(FALSE);
     printer->setPageSize(QPrinter::A4);
printer->setColorMode(QPrinter::GrayScale );
     printer->setOrientation(QPrinter::Landscape);
printer->setPrintRange(QPrinter::PageRange);

printer->setMinMax(1,100);
     if ( printer->setup( this) ) //подключение диалога принтера
{
QPainter p(printer);
if ( !p.device() )
{
delete printer;
return;
}
        }
delete printer;
#endif
Валится под windows XP, под линуксом все работает.
QT 3.3.8 + VC2005
Именно на команде создания QPainter.


Название: Re: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 10, 2012, 12:15
Проверил связку QT3.3.8 + MinGW
тот же облом.
Даже печать в примере demo валит Винду вусмерть ???
Неужели никто не боролся с этой проблемой?  ???


Название: Re: Валится на QPainter p(printer)
Отправлено: GreatSnake от Сентябрь 10, 2012, 14:06
А без QPrinter::HighResolution пробовал?


Название: Re: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 10, 2012, 14:29
Пробовал
QPrinter::PrinterResolution
QPrinter::Compatible

В отладчике вылезло
Код:
DrvEnableDriver
DrvEnablePDEV
DrvCompletePDEV
DrvEscape
Samsung ML-191x 252x Series
DrvEnableSurface
DrvStartDoc
SSXLUMPD: DrvSplStartDoc
DrvEscape
DrvEscape
DrvStartPage
SSXLUMPD: DrvSplStartPage
First-chance exception at 0x77c37fd4 in KP-PBF.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x77c37fd4 in KP-PBF.exe: 0xC0000005: Access violation reading location 0x00000000.
Samsung ML-191x 252x Series - выдал в qDebug имя принтера


Название: Re: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 10, 2012, 14:42
Смотрел в отладчике созданный объект QPrinter
Смущает, что свойство
hdevmode значение имеет отличное от нуля (не нулевой адрес)
hdevname остается равным 0.
Может отсюда ноги растут, не получена ссылка на устройстро ???


Название: Re: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 10, 2012, 21:22
Может кто подскажет, как использовать WIN API для выдачи файла тестового на печать?


Название: Re: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 11, 2012, 14:17
Для очистки совести проверил на VC60 + QT3.3.4 коммерческой версии.
Валится и все тут...
Не работает QTшная печать под Виндой. ???
Однако... :'(


Название: Re: Валится на QPainter p(printer)
Отправлено: GreatSnake от Сентябрь 11, 2012, 14:22
Не мешало бы ещё распечатать страницу, например, в ассистенте и выбрать другой принтер, отличный от Samsung.


Название: Re: Валится на QPainter p(printer)
Отправлено: Примерный ученик от Сентябрь 14, 2012, 13:08
Смена принтера дела не меняет.
Коммерческий Асистент печатает нормально, FREE валится.
И чем мне это может помочь?