2010-11-06 3 views
10

Я добавил QAction в мой QToolBar в своем MainWindow в Qt Designer (с использованием Qt Creator IDE) и дал этому Action значок (сделанный с помощью «Выбрать файл») и выбрав мой .png, расположенный в том же каталоге, что и мой проект и исходный код). Значок хорошо отображается на панели инструментов в Qt Designer, но не отображается, когда проект запущен. У меня были подобные проблемы при выборе значка заголовка на окнах. Я никогда раньше не использовал графику в Qt, есть ли что-то особенное, что мне нужно сделать?Qt/C++: Иконки не отображаются при запуске программы

Скриншот:

ответ

11

ли вы сделать файл QRC (то есть эквивалент в Qt файла ресурсов?) Если нет, то объясните бы то, что вы видите. Значки будут отображаться в создателе, но не в конечном скомпилированном исполняемом файле. Посмотрите на это:

http://doc.qt.io/qt-5/resources.html

+0

Я этого не сделал, и сейчас я пытаюсь. По-видимому, вы можете редактировать/настраивать ресурсы в среде разработки Qt Creator, но я не могу найти этот браузер ресурсов, о котором говорят документы (http://doc.troll.no/4.7/designer-resources.html). Это упоминает Tools-> Resource Browser, который для меня не существует. Вы знакомы с этим? Благодаря! – Joseph

+1

Сначала вам нужно добавить новый файл ресурсов в свой проект. (То есть, файл QRC). Как только вы это сделаете, вы увидите ресурс browswer. Взгляните на это: http://www.qtforum.org/article/33043/resource-browser-option-missing.html – Bart

+0

Отлично, спасибо! – Joseph

0

Пытались ли вы открытие файла проекта. Например, мой файл проекта называется menu.pro и содержит следующее:

TEMPLATE = app 
QT = gui core 
CONFIG += qt debug warn_on console 
DESTDIR = bin 
OBJECTS_DIR = build 
MOC_DIR = build 
UI_DIR = build 
FORMS = ui/mainwindow.ui 
HEADERS = src/mainwindowimpl.h 
SOURCES = src/mainwindowimpl.cpp src/main.cpp 
RESOURCES = Images.qrc 

Последняя строка (RESOURCES = Images.qrc) является то, что вам нужно поместить в ваш файл проекта: конечно, использовать имя, которое вы использовали для вашего файл ресурсов, в моем случае это Images.qrc.

0

У меня также возникла такая проблема. В моем случае я закрыл qt-создатель и удалил папку сборки (что-то вроде build-projectname ..). Затем перезапустите создатель qt. Тогда волшебный мой значок появился при запуске приложения.

Я часто использую этот трюк, когда qt плохо себя ведет.

9

Я обнаружил, что делаю все правильно, добавляя файл qrc и размещая там свои значки. Когда я запускаю программу без сделки. выверните я забывал запустить QMAKE:

  • Щелкните правой кнопкой мыши на имени проекта и выберите "Run QMAKE". Или выберите Build> Run qmake.

Каждый раз, когда вы что-то меняете в файле .pro, вам нужно снова запустить qmake. Создание файла ресурса неявно добавляет аргументы в .pro-файл, поэтому вам нужно это сделать.

Надеюсь, что это поможет другим людям.

1

Также в случае создания тени не забудьте использовать windeployqt.exe в исполняемом файле вашего приложения. После этого в ваш каталог компоновки будет добавлено несколько папок. Частичные две важные папки: iconengines и imageformats которые содержат несколько DLL, необходимых для загрузки и рисования значка.

+0

Где находится этот .exe? –

0
  1. При добавлении значков используйте опцию «Выбрать ресурс» вместо «Выбрать Файл».
  2. Щелкните правой кнопкой мыши имя вашего проекта и нажмите «Запустить qmake».
Смежные вопросы