Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: sergey2212 от Март 20, 2015, 14:50



Название: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 14:50
В тупиковых ситуациях всегда вспоминаешь о вашем форуме.
Вроде все про гуглил но не могу разобраться при компиляции из под линукса выдает такую ошибку

Код:
dialog.cpp:324: error: aggregate ‘QPrinter printer’ has incomplete type and cannot be defined
dialog.cpp:325: error: incomplete type ‘QPrinter’ used in nested name specifier
dialog.cpp:326: error: incomplete type ‘QPrinter’ used in nested name specifier
dialog.cpp:328: error: incomplete type ‘QPrinter’ used in nested name specifier
dialog.cpp:329: error: incomplete type ‘QPrinter’ used in nested name specifier
dialog.cpp:333: error: ‘QPrintPreviewDialog’ was not declared in this scope
dialog.cpp:333: error: expected `;' before ‘previewD’
dialog.cpp:335: error: ‘previewD’ was not declared in this scope
dialog.cpp: In member function ‘void Dialog::preview(QPrinter*)’:
dialog.cpp:412: error: no matching function for call to ‘QPainter::begin(QPrinter*&)’

Подскажите пожалуйста


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 14:54
Какой Кьют написал бы.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: gil9red от Март 20, 2015, 14:55
... и код привели бы :)


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 14:57
Да кот не нужен, если под Линем собирается. Скорее всего, просто 5 Кьют и нет модуля. Или в pro не прописан.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:02
кьют 5

да под линем собирается. а как модуль применить или в про прописать


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 15:11
QT += printsupport в pro файле.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:21
Странно но не помогает
пишет
Project MESSAGE: Warning: unknown QT: printsupport


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:24
у меня установлен qt 5
проект от qt 4 поэтому я установил профиль qt 4.8. Для компиляции использую qmake от qt4.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: GraninDm от Март 20, 2015, 15:25
А #include <QPrinter> не исправляет ошибку?


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 15:27
Странно но не помогает
пишет
Project MESSAGE: Warning: unknown QT: printsupport

Вооот, а это уже говорит, что такой модуль просто отсутствует. Так ты 5 или 4 юзаешь???


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:29
Да у меня именно так было и написано только в ковычках переделал на <> тоже самое


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: GraninDm от Март 20, 2015, 15:31
А так #include <QtPrintSupport/QPrinter>


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:36
не дает подобное выбрать такое чувство что он не видит либы какой то. Но как ему увидеть если я использую 4 версию и либы виндовые от 4 ки. Тупик прям какой то


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 15:38
Если 4 версия, то #include <QtGui/QPrinter> и в pro файле QT += gui


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:39
даже если просто в терминале пропишу
Код:
/home/sergey/qt-everywhere-opensource-src-4.8.6/bin/qmake

он мне отвечает
Код:
Project MESSAGE: Warning: unknown QT: printsupport
Project MESSAGE: Warning: unknown QT: printsupport
Project MESSAGE: Warning: unknown QT: printsupport


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 15:42
даже если просто в терминале пропишу
Код:
/home/sergey/qt-everywhere-opensource-src-4.8.6/bin/qmake

он мне отвечает
Код:
Project MESSAGE: Warning: unknown QT: printsupport
Project MESSAGE: Warning: unknown QT: printsupport
Project MESSAGE: Warning: unknown QT: printsupport
Модуль printsupport появился в 5, в 4 его нет, вот и ругается. Убери его и сделай так, как я выше сказал.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:46
Пантер к сожалению без изменений прежние ошибки

Код:
adish.cpp: In member function ‘void Adish::print(int)’:
adish.cpp:608: error: aggregate ‘QPrinter printer’ has incomplete type and cannot be defined
adish.cpp:609: error: incomplete type ‘QPrinter’ used in nested name specifier
adish.cpp:610: error: incomplete type ‘QPrinter’ used in nested name specifier
adish.cpp:612: error: incomplete type ‘QPrinter’ used in nested name specifier
adish.cpp:613: error: incomplete type ‘QPrinter’ used in nested name specifier
adish.cpp:617: error: ‘QPrintPreviewDialog’ was not declared in this scope
adish.cpp:617: error: expected `;' before ‘previewD’
adish.cpp:621: error: ‘previewD’ was not declared in this scope
adish.cpp:625: error: ‘previewD’ was not declared in this scope
adish.cpp:627: error: ‘previewD’ was not declared in this scope
adish.cpp: In member function ‘void Adish::preview1(QPrinter*)’:
adish.cpp:1203: error: no matching function for call to ‘QPainter::begin(QPrinter*&)’

вот мой код
в проекте
Код:
QT += xml \
    sql \
    gui \
    core \

в заголовке
Код:
#include "QPainter"
#include <QtGui/QPrinter>
#include <QtGui/QPrintPreviewDialog>

в void
Код:
QPrinter printer;
    printer.setOrientation(QPrinter::Portrait);
    printer.setPageSize(QPrinter::A4);

    printer.setPaperSize(QSize(210,297),QPrinter::Millimeter);
    printer.setPageMargins(15,10,0,0,QPrinter::Millimeter);



       QPrintPreviewDialog previewD( &printer, this);

       if(a==0)
       {
       connect( &previewD, SIGNAL(paintRequested(QPrinter *) ), SLOT(preview(QPrinter *)));
       }
       if(a==1)
       {
       connect( &previewD, SIGNAL(paintRequested(QPrinter *) ), SLOT(preview1(QPrinter *)));
       }
       previewD.showMaximized();
       previewD.setWindowState(Qt::WindowMaximized);
       previewD.setWindowTitle("Предпросмотр");
       previewD.exec();


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Alex Custov от Март 20, 2015, 15:51
Qt4 официальный или собирался вручную?


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 15:52
Если вручную Кьют собирал, возможно, не включил поддержку принтера.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 15:54
да вручную, как тогда поступить?


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: Пантер от Март 20, 2015, 15:56
Пересобрать с включенным принтером. Почитай опции configure.


Название: Re: Компиляция из linux под windows не берет QPrinter
Отправлено: sergey2212 от Март 20, 2015, 16:10
Хорошо так и поступлю спасибо вам большое ребята