LINUX.ORG.RU

[qt] Приложение завершается после печати

 


0

0

Добавляю в своё приложение возможность печати. За основу взял QT Order Form: http://doc.trolltech.com/4.6/richtext-orderform.html

Получилось вот что:

#ifndef QT_NO_PRINTER
QTextEdit *editor = new QTextEdit(QString(«dfdfdf»));
QPrinter printer;

QPrintDialog *dialog = new QPrintDialog(&printer);
dialog->setWindowTitle(tr(«Print Document»));
dialog->exec();
editor->print(&printer);
#endif

На виртуальном PDF-принтере нормально печатает, но как только нажмёшь «печать» или «отмена», приложение вылетает. Такая хрень наблюдается и под Linux Slackware 13.1 (KDE) и под Windows XP sp3 (тоже печатал на виртуальном принтере).

Скомпилил пример (Order Form) - всё нормально, без вылетов.

★★

Ответ на: комментарий от k0l0b0k

./prog
QWidget::setMinimumSize: (/QMdi::ControlLabel) Negative sizes (-1,-1) are not possible
QWidget::setMinimumSize: (/QMdi::ControlLabel) Negative sizes (-1,-1) are not possible
prog(13405)/ KSycocaPrivate::openDatabase: Trying to open ksycoca from «/var/tmp/kdecache-sabo/ksycoca4»

Всё.

Эта строчка:
QWidget::setMinimumSize: (/QMdi::ControlLabel) Negative sizes (-1,-1) are not possible


появляется только в KDE (под Гномом, например, её нет)

Эта строчка:
prog(13405)/ KSycocaPrivate::openDatabase: Trying to open ksycoca from «/var/tmp/kdecache-sabo/ksycoca4»

появляется при создании диалогового окна выбора принтера и настроек печати (в Order Form тоже появляется)

SaBo ★★
() автор топика
Ответ на: комментарий от k0l0b0k

тогда kdbg тебе в руки

Стабильного KDbg под 4-е кеды и Qt - нету ))
У девелоперский скомпилился, но вылетел с сигфолтом

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

QT Creator в режиме дебага сообщает, что приложение нормально завершилось...
GDB что-то ниасиливаю

SaBo ★★
() автор топика
Ответ на: комментарий от k0l0b0k

Так, походу дело всё же не в принтерах...
Сейчас пытаюсь создать диалоговое окно, но при его закрытии опять вылетает всё приложение. Значит где-то накосячил - буду искать.

Спасибо за помощь :)

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

Всё, глюк устранён.

Надо было в диалог родительский виджет передать, иначе всё закрывается...

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

Т.е.:
QPrintDialog *dialog = new QPrintDialog(&printer, parent);

SaBo ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.