Название: QPainter в консольном приложении падает на drawText Отправлено: QCasper от Октябрь 22, 2010, 11:49 Вот такой код падает на строчке p.drawText, при этом рисование других примитивов работает нормально.
Падает только если объект приложения создаётся с помощью класса QCoreApplication. C QApplication всё нормально. Может кто-то сталкивался, как же текст нарисовать? Код: int main(int argc, char *argv[]) { Название: Re: QPainter в консольном приложении падает на drawText Отправлено: GreatSnake от Октябрь 22, 2010, 11:55 Ответ в вопросе.
Главное отличие QCoreApplication от QApplication, что последний инициалицирует Paint и Font Engine, а первый нет. Да и сами подумайте, ведь Qt не сам рендерит текст. Для этого он использует средства графической подсистемы ОС. Поэтому без QApplication никак не обойтись. Мало того нужен доступ к XServer-у для X11 и к GDI для винды. Если хотите генерить картинки втихую ищите что-нибудь другое. Название: Re: QPainter в консольном приложении падает на drawText Отправлено: QCasper от Октябрь 22, 2010, 12:32 Если первый не может инициализировать PaintEngine почему же примитивы рисуются без проблем?
Название: Re: QPainter в консольном приложении падает на drawText Отправлено: GreatSnake от Октябрь 22, 2010, 12:36 Я немного не так выразился. Имелось в виду FontEngine.
Другие примитивы Qt отрисовывает сам, а вот текст не может, да и не его это дело. Название: Re: QPainter в консольном приложении падает на drawText Отправлено: QCasper от Октябрь 22, 2010, 12:41 Вобщем суть в том, что генерить картинки с текстом с помощью Qt "втихую" невозможно как не извернись, верно я понял?
Название: Re: QPainter в консольном приложении падает на drawText Отправлено: GreatSnake от Октябрь 22, 2010, 12:43 Имхо, нет :(
Название: Re: QPainter в консольном приложении падает на drawText Отправлено: ufna от Октябрь 22, 2010, 13:30 А кто мешает сделать QApplication без GUI? Или есть ограничения?
Название: Re: QPainter в консольном приложении падает на drawText Отправлено: GreatSnake от Октябрь 22, 2010, 13:34 Цитировать А кто мешает сделать QApplication без GUI? Или есть ограничения? Перед тем как глупость спрашивать, не мешало бы в ассистенте почитать описание QApplication.Название: Re: QPainter в консольном приложении падает на drawText Отправлено: QCasper от Октябрь 22, 2010, 15:47 А кто мешает сделать QApplication без GUI? Или есть ограничения? Есть отсутствие X-сервера. Да, пожалуй можно считать это ограничением :) Название: Re: QPainter в консольном приложении падает на drawText Отправлено: ufna от Октябрь 22, 2010, 16:17 Перед тем как глупость спрашивать, не мешало бы в ассистенте почитать описание QApplication. Перед тем, как глупость ответить, подумай почему задан вопрос :) Название: Re: QPainter в консольном приложении падает на drawText Отправлено: GreatSnake от Октябрь 22, 2010, 16:23 Цитировать Перед тем, как глупость ответить, подумай почему задан вопрос Ну дык вопрос то левый. Как QApplication может быть без GUI, если он сам этот GUI и порождает?Название: Re: QPainter в консольном приложении падает на drawText Отправлено: ufna от Октябрь 22, 2010, 20:01 Ну дык вопрос то левый. Как QApplication может быть без GUI, если он сам этот GUI и порождает? Может быть не создавая ни одного виджета? :) У меня как-то отлично работают приложения, не имеющие никакого визуального отображения. Висит себе процесс и висит, зачем ему GUI? Название: Re: QPainter в консольном приложении падает на drawText Отправлено: GreatSnake от Октябрь 22, 2010, 20:38 Блин, чудак-человек, проблема-то в том, что нужен работающий FontEngine.
А без полной инициализации QApplication и её взаимодействии с графической подсистемой ОС текст отрендерить не получится. Название: Re: QPainter в консольном приложении падает на drawText Отправлено: ufna от Октябрь 22, 2010, 22:49 Блин, чудак-человек, проблема-то в том, что нужен работающий FontEngine. А без полной инициализации QApplication и её взаимодействии с графической подсистемой ОС текст отрендерить не получится. Простите, а я где-то спорю с тем, что если граф. подсистемы нет, то QApplication "полно инициализировать" не получится? :) Нигде в теме до моего сообщения не было сказано об отсутствии х-сервера и вообще о никсах. |