Как определить Icon в QT с предопределенным изображением времени компиляции? - PullRequest
1 голос
/ 25 апреля 2010

У меня есть файл png на диске во время компиляции. Я хотел бы включить его в скомпилированный исполняемый файл. Как мне определить такую ​​иконку в Qt?

Ответы [ 3 ]

9 голосов
/ 25 апреля 2010

Вам в основном нужно использовать систему ресурсов Qt.
Проверьте Скомпилированные ресурсы здесь .

Допустим, это файл вашего ресурса

<!DOCTYPE RCC><RCC version="1.0">
 <qresource>
     <file>images/copy.png</file>
     <file>images/cut.png</file>
     <file>images/paste.png</file>
 </qresource>
</RCC>

В вашем источнике теперь вы можете создавать QIcons, ссылаясь на изображения из ресурса

QIcon(":/images/cut.png")

Не забудьте сослаться на файл ресурса в вашем .pro

 RESOURCES = application.qrc

В этом примере использует изображения в файле ресурсов для иконок

6 голосов
/ 25 апреля 2010

В качестве альтернативы ресурсной системе Qt вы можете использовать (вашу любимую утилиту преобразования изображений), чтобы преобразовать файл .png в формат .xpm, а затем добавить следующие строки в ваш файл .cpp:

#include "my_converted_image.xpm"
[...]
QPixmap myPixmap((const char **) my_converted_image_xpm);

... где my_converted_image_xpm - имя массива символов, объявленного в верхней части файла .xpm. Это работает, потому что формат изображения .xpm - это на самом деле просто исходный код C, объявляющий массив символов, который является растровым изображением, которое QPixmap знает, как анализировать, например ::

/* XPM */
static const char * const my_converted_image_xpm[] = {
"16 16 65 1",
"       c None",
".      c #0F0F04",
[...]
"                "};
0 голосов
/ 09 марта 2012

Если вы используете Qt-Creator, вам доступен редактор ресурсов. Просто создайте новый файл ресурсов, добавьте префикс и добавьте файлы. Qt-Creator автоматически добавит его в файл проекта. После этого выберите ваше изображение на вашем ресурсе и вы можете идти

...