Qt on Ruby无法导入任何图像/图标?

时间:2015-07-13 17:45:18

标签: ruby qt

我使用Ruby和Qt4。除了从文件加载图像外,一切都很好。我尝试使用.ui文件中包含的资源文件加载它们。没有任何结果。我也在代码中尝试过。以这种方式例如:

class Window < Qt::Window
  def initialize
    filename = "images/icon.ico"
    icon = Qt::Icon.new filename
    setWindowIcon icon
    puts File.exist? filename
    puts Qt::File.new(filename).exists
    puts !icon.isNull
    puts icon.name
  end
end

图标仍为空。结果如下:

true
true
true
<empty line>

当我尝试将图像加载为QPixmap并调整大小时,我收到了错误信息:“空QPixmap无法调整大小”。 图像位于'images / icon.ico'中脚本的相对位置,但我尝试使用绝对路径(例如E:/Ruby/Project/images/icon.ico)。结果是一样的。我在Windows下工作,但路径在Qt之外工作。例如,使用Yaml文件。加载文件.ui工作得很好。问题出在哪里?

1 个答案:

答案 0 :(得分:0)

我已经找到了有关此问题的详细信息。问题是在使用Qt的所有语言上加载插件库.DLL(我想是这样)。

  1. [QtBin] / plugins / imageformats / 复制文件(例如qico4.dll,qjpeg4.dll)。使用类似的路径结构到我们项目附近的目录。例如 [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.