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 валится.
И чем мне это может помочь?