Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [qt/qml] Проблема с выводом изображений


Автор: NoNo 28.1.2014, 23:15
Добрый вечер!
Проблема в следующем. Вот код:
Код

import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1

ApplicationWindow {
    width: 400
    height: 400

    Action {
        id: actionAddStat
        iconSource: "Images/DeleteStat.png"
    }

    toolBar: ToolBar {
        RowLayout {
            ToolButton {
                action: actionAddStat
            }
        }
    }
}

DeleteStat.png находится в файле ресурса.
Если прогнать этот код через qmlscene, то все нормально работает.
Однако, добавляем вот такой код в main.cpp
Код

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickWindow>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl("qrc:/UI/Stat.qml"));
    QQuickWindow *window = qobject_cast<QQuickWindow*>(engine.rootObjects().value(0));
    window->show();
    return app.exec();
}

После компиляции приложение запускается все нормально, и даже кнопка на своем месте, только на кнопке картинке нет, а вместо картинки приложение выводит следующее:
file:///opt/Qt/5.2.0/gcc_64/qml/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml:79:13: QML Image: Cannot open: qrc:/UI/Images/DeleteStat.png

Внимание! вопрос!
Кто знает как мне помочь???


----------------------

Разобрался.
Короче дело вот в чем.
У меня файлы находятся в каталоге проекта в папке Images/
А в файле ресурса создан префикс для картинов Images и в итоге выглядет так:
/Images
       Images/DeleteStat.png
Вот чтоб иконка отобразилась как надо, нужно обратится к ней так
iconSource: "/Images/Images/DeleteStat.png"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)