Пытаюсь назначить иконку приложения. Подключил ее в ресурсном файле
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>../TLeater.jpg</file>
</qresource>
</RCC>
и вызвал в main.cpp
w.setWindowIcon(QIcon("../TLeater.jpg"));
Выдает ошибку ресурсного файла. Как правильно обратиься к картинке, если она лежит в той же папке, что и весь проект? Если я правильно помню, к файлам, которые лежат в той же папке обращаются через ../ в с++
Полный путь к файлу работает
P.S исправил ../ на ./ в обоих файлах, но картика все равно не появляется.
Создал пустой проект, добавил файл ресурсов.
Первое, на что обратил внимание при добавлении файла ресурсов из Qt Creator, обязательное наличие префикса перед иконками (иначе попросту нельзя было добавить файлы, см. скриншот). Не могу объяснить, почему это так. Если кто-то просветит, то только приветствуется.
Затем добавил иконку в ресурсы и через дизайнер установил эту иконку в тайтл окна. Нажал "запустить". Удостоверился, что иконка подключилась правильно.
Глянул файл ресурсов в текстовом редакторе, получил такое:
<RCC>
<qresource prefix="/icons">
<file>edit-icon.png</file>
</qresource>
</RCC>
Далее открыл файл ui_mainwindow.h (сгенерированный при сборке, лежит в папке с билдом) и поиском по ключевому слову "icon" нашел следующие строки:
QIcon icon;
icon.addFile(QStringLiteral(":/icons/edit-icon.png"), QSize(), QIcon::Normal, QIcon::Off);
MainWindow->setWindowIcon(icon);
Что из этого мы видим?
":/icons/edit-icon.png").Затем, имея готовый файл ресурсов и зная, как обратиться к иконке из ресурсов, очистил поле windowIcon в дизайнере, открыл mainwindow.cpp и в конструкторе вписал:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowIcon(QIcon(":/icons/edit-icon.png"));
}
В итоге все работает.
Ответ из коментариев:
QIcon(":/TLeater.jpg")
работает. Пошел читать документацию
Всем спасибо.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей