crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Не отображаются картинки на кнопках, png-формат
AD
  опции профиля:
сообщение 7.10.2009, 9:54
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 65 раз(а)




Репутация:   17  


Не понос, так золотуха. Ни с того, ни с сего пропали отображения картинок с кнопок. Помогите, пожалуйста восстановить.
Следующий формат qrc-файла:
<RCC>
    <qresource prefix="/" >
     <file>images/open.png</file>
        <file>images/save.png</file>
        <file>images/HPntSymbSmall.png</file>
        <file>images/PntName.png</file>
        <file>images/PntSymb.png</file>
        <file>images/PntSymbSmallOFF.png</file>
        <file>images/PntSymbSmallON.png</file>
     <file>images/Filter.png</file>
     <file>images/PlaneII.png</file>
     <file>images/Relief.png</file>
        <file>images/zoomin.png</file>
        <file>images/zoomout.png</file>
     <file>images/repair.png</file>
     <file>images/APTsymbol.png</file>
     <file>images/SpecMode.png</file>
     <file>images/RightArrow.png</file>
     <file>images/LeftArrow.png</file>
    </qresource>
</RCC>

Картинки находятся в папке Images той же директории, что и исполняемый файл. Что не так делаю?
int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(tlv_resource);

    QApplication a(argc, argv);

    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());                ///< Для внутреннего преобразования
    QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));        ///< Для функций перевода tr()

    setlocale(LC_ALL, 0);

    QString pluginsPath;
    pluginsPath = QDir::toNativeSeparators(qApp -> applicationDirPath()) + QDir::separator() + "Plugins";
    pluginsPath = pluginsPath.toLower();
    qApp -> addLibraryPath(pluginsPath);

    TLV w;
    w.show();
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    return a.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 7.10.2009, 12:17
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 65 раз(а)




Репутация:   17  


Раньше программа данную строчку воспринимала нормально:
QAction* saveAction(new QAction(QIcon("./Images/save.png"), tr("Save"), innerWindow));


Теперь же вместо символа "." надо ставить символ ":"!
QAction* saveAction(new QAction(QIcon(":/Images/save.png"), tr("Save"), innerWindow));


Задача решена. Правда почему такое изменение произошло, не очень-то понимаю!

Сообщение отредактировал AD - 7.10.2009, 12:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 7.10.2009, 12:23
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Потому что раньше эти файлы были и в ресурсах программы, и лежали рядом. Наверное ты просто их убрал или переместил.
P.S. "." означает текущую директорию, ":" - корень файла ресурсов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.10.2009, 14:54
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9642
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 769 раз(а)




Репутация:   94  


наличие файла ресурсов (и запись в pro-файле соответствующая) говорит о том, что в твой экзешник будут вкомпилены ресурсы.

Цитата(Kagami @ 7.10.2009, 16:23) *
":" - корень файла ресурсов.
т.е. путь внутри экзешника.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.7.2018, 4:32