我正在使用Python Imaging Library和Tkinter。 我目前正在尝试将图像显示为标签,并且我得到了上述异常。 我的35行来源:
from PIL import Image, ImageTk
from Tkinter import Tk, Frame, Label
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Label")
self.img = Image.open("diesl.jpg")
diesl = ImageTk.PhotoImage(self.img)
label = Label(self, image=diesl)
label.image = diesl
label.pack()
self.pack()
def setGeometry(self):
w, h = self.img.size
self.parent.geometry(("%dx%d+300+300") % (w, h))
def main():
root = Tk()
ex = Example(root)
ex.setGeometry()
root.mainloop()
if __name__ == '__main__':
main()
答案 0 :(得分:2)
实际上,你的评论是正确的:Notepad ++似乎从它自己的目录中启动文件。
如果你还打算使用Notepad ++,你可以在这里找到问题的解决方案:http://damienlearnsperl.blogspot.com/2009/01/launch-your-perl-script-from-notepad.html(查看Lee的评论)
答案 1 :(得分:0)
我尝试了您的确切代码,但效果非常好。
我认为你在一个奇怪的目录中 (例如需要特殊权限的Program Files)
为什么不尝试通过任务管理器结束explorer.exe,
而不是再次运行你的代码?
答案 2 :(得分:0)
我是Python的新手,但我的方法适合我。 这是代码:
from Tkinter import *
from PIL import Image,ImageTk
import os
import platform
import webbrowser
sys = platform.system()
def setup_window():
global window
window = Tk()
window.geometry("300x150")
window.title("Computer Utility GUI")
def style_window():
path = "/home/pi/Desktop/tool icon"
img = ImageTk.PhotoImage(Image.open(path))
label = Label(window, image = img)
label.grid(row=0,column=0,sticky=W)
setup_window()
style_window()
window.mainloop()
我是如何开始工作的:
1)(你需要导入操作系统,但在我的代码中我已经完成了。)从运行我的代码的结果shell窗口中我输入 os.getcwd()
这将为您提供当前的工作目录。
2)确保您的文件保存在此目录中;用你的Python脚本。
3)将运行目录键入您需要使用它的任何位置的括号中,然后在结尾处放置斜杠并等待。
4)使用箭头键向下显示一个小小部件,找到应该保存在路径中的图像。 然后选择它时按enter键,这是您需要使用的路径,
5)希望它应该有效。我发现Python并不需要结束。