Russian Qt Forum
Ноябрь 24, 2024, 02:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPainter в консольном приложении падает на drawText  (Прочитано 6326 раз)
QCasper
Гость
« : Октябрь 22, 2010, 11:49 »

Вот такой код падает на строчке p.drawText, при этом рисование других примитивов работает нормально.
Падает только если объект приложения создаётся с помощью класса QCoreApplication. C QApplication всё нормально.
Может кто-то сталкивался, как же текст нарисовать?

Код:
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
QImage i(200, 200, QImage::Format_RGB32);
QPainter p(&i);
p.drawText(0, 0, "Hello world");
return 0;
}
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Октябрь 22, 2010, 11:55 »

Ответ в вопросе.
Главное отличие QCoreApplication от QApplication, что последний инициалицирует Paint и Font Engine, а первый нет.
Да и сами подумайте, ведь Qt не сам рендерит текст. Для этого он использует средства графической подсистемы ОС.
Поэтому без QApplication никак не обойтись. Мало того нужен доступ к XServer-у для X11 и к GDI для винды.
Если хотите генерить картинки втихую ищите что-нибудь другое.
« Последнее редактирование: Октябрь 22, 2010, 13:36 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
QCasper
Гость
« Ответ #2 : Октябрь 22, 2010, 12:32 »

Если первый не может инициализировать PaintEngine почему же примитивы рисуются без проблем?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Октябрь 22, 2010, 12:36 »

Я немного не так выразился. Имелось в виду FontEngine.
Другие примитивы Qt отрисовывает сам, а вот текст не может, да и не его это дело.
Записан

Qt 5.11/4.8.7 (X11/Win)
QCasper
Гость
« Ответ #4 : Октябрь 22, 2010, 12:41 »

Вобщем суть в том, что генерить картинки с текстом с помощью Qt "втихую" невозможно как не извернись, верно я понял?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Октябрь 22, 2010, 12:43 »

Имхо, нет Грустный
Записан

Qt 5.11/4.8.7 (X11/Win)
ufna
Гость
« Ответ #6 : Октябрь 22, 2010, 13:30 »

А кто мешает сделать QApplication без GUI? Или есть ограничения?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Октябрь 22, 2010, 13:34 »

Цитировать
А кто мешает сделать QApplication без GUI? Или есть ограничения?
Перед тем как глупость спрашивать, не мешало бы в ассистенте почитать описание QApplication.
Записан

Qt 5.11/4.8.7 (X11/Win)
QCasper
Гость
« Ответ #8 : Октябрь 22, 2010, 15:47 »

А кто мешает сделать QApplication без GUI? Или есть ограничения?

Есть отсутствие X-сервера. Да, пожалуй можно считать это ограничением Улыбающийся
Записан
ufna
Гость
« Ответ #9 : Октябрь 22, 2010, 16:17 »

Перед тем как глупость спрашивать, не мешало бы в ассистенте почитать описание QApplication.

Перед тем, как глупость ответить, подумай почему задан вопрос Улыбающийся
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #10 : Октябрь 22, 2010, 16:23 »

Цитировать
Перед тем, как глупость ответить, подумай почему задан вопрос
Ну дык вопрос то левый. Как QApplication может быть без GUI, если он сам этот GUI и порождает?
Записан

Qt 5.11/4.8.7 (X11/Win)
ufna
Гость
« Ответ #11 : Октябрь 22, 2010, 20:01 »

Ну дык вопрос то левый. Как QApplication может быть без GUI, если он сам этот GUI и порождает?

Может быть не создавая ни одного виджета? Улыбающийся У меня как-то отлично работают приложения, не имеющие никакого визуального отображения. Висит себе процесс и висит, зачем ему GUI?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #12 : Октябрь 22, 2010, 20:38 »

Блин, чудак-человек, проблема-то в том, что нужен работающий FontEngine.
А без полной инициализации QApplication и её взаимодействии с графической подсистемой ОС текст отрендерить не получится.
Записан

Qt 5.11/4.8.7 (X11/Win)
ufna
Гость
« Ответ #13 : Октябрь 22, 2010, 22:49 »

Блин, чудак-человек, проблема-то в том, что нужен работающий FontEngine.
А без полной инициализации QApplication и её взаимодействии с графической подсистемой ОС текст отрендерить не получится.

Простите, а я где-то спорю с тем, что если граф. подсистемы нет, то QApplication "полно инициализировать" не получится? Улыбающийся Нигде в теме до моего сообщения не было сказано об отсутствии х-сервера и вообще о никсах.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.