2015-07-13 14 views
0

Я использую Ruby с Qt4. Все работает отлично, за исключением загрузки изображений из файлов. Я попытался загрузить их с помощью файлов ресурсов, включенных в файл .ui. Без каких-либо результатов. Я тоже пробовал в коде. Таким образом, например:Qt на Ruby не может импортировать изображения/иконки?

Значок по-прежнему пуст. Результат выглядит следующим образом:

true 
true 
true 
<empty line> 

Когда я пытаюсь загрузить изображение QPixmap и изменять их размер, я получил сообщение об ошибке с информацией: «пустой QPixmap не может быть изменен». Изображение находится в относительном местоположении из сценария в 'images/icon.ico', но я попытался использовать абсолютный путь (например, E: /Ruby/Project/images/icon.ico). Результат был тот же. Я работаю под Windows, но пути работают вне Qt. Например, с файлами Yaml. Загрузка файлов .ui отлично работает. Где же тогда проблема?

ответ

0

Я уже нашел детали об этой проблеме. Проблема заключается в загрузке модулей плагинов .DLL, на всех языках, используемых Qt (я так думаю).

  1. Копирование файлов (например, qico4.dll, qjpeg4.dll) от [QtBin]/плагинов/imageformats/. в каталог рядом с нашим проектом с аналогичной структурой пути. Например, [OurProject]/foobar/imageformats/.
  2. Далее необходимо использовать QApplication :: addLibraryPath (String), чтобы добавить наш новый путь к плагинам. Я привел пример в Ruby:

    class App < Qt::Application 
        def initialize 
        super ARGV 
        addLibraryPath 'foobar' # There is qico4.dll 
        icon = Qt::Icon.new 'images/icon.ico' # Now I can use .ico! 
        setWindowIcon icon 
        # ... show windows et cetera. 
        end 
    end 
    App.new.exeC# All of windows now have icon from icon.ico.