我正在使用PySide开发GUI,我从这样的图像创建pixmap:
PHONE_IMAGE_PATH = "resources/images/phone.png"
self.phone_null = QtGui.QPixmap(GREY_DOT_PATH)
self.phone_null = self.phone_null.scaledToWidth(20)
当我运行程序时这很有效,但是当我用py.test测试它时会发生这种情况:
QPixmap::scaleWidth: Pixmap is a null pixmap
它表示pixmap为null,因此看起来图像没有正确加载。
我真的想测试我的代码,我无法在任何地方找到有关此问题的任何信息。有没有人能解决我的问题?
答案 0 :(得分:0)
来自维基百科:
相比之下,相对路径从某个给定的工作目录开始,无需提供完整的绝对路径。文件名可以视为基于当前工作目录的相对路径。如果工作目录不是文件的父目录,则如果文件的名称是通过其名称寻址,则会导致找不到文件错误。
似乎你正在使用图像资源的相对路径,所以当你运行你的程序时,相对路径是正确的,但我假设你的测试位于与主程序不同的目录中。
您可以使用以下代码获取当前文件位置:__file__
例如:
main_script_dir = os.path.dirname(__file__)
rel_path = "resources/images/phone.png"
PHONE_IMAGE_PATH = os.path.join(main_script_dir, rel_path)