添加图像时,python按钮不起作用

时间:2014-06-01 19:47:00

标签: python image python-2.7 tkinter photoimage

当我尝试添加图像并按下图像时,程序将运行,但按钮将为空白,您无法单击该按钮。如果我将image=Tkinter.PhotoImage(file="C:/TeDOC/OpenFolder.gif")更改为text='Open Directory,它可以正常工作,您可以点击该按钮。我不知道为什么当我把它改成img时,它不起作用。任何帮助将不胜感激。

这是我的代码:

import Tkinter, Tkconstants, tkFileDialog

class TkFileDialogExample(Tkinter.Frame):

def __init__(self, root):

Tkinter.Frame.__init__(self, root)

# options for buttons
button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}

# define buttons
Tkinter.Button(self, image=Tkinter.PhotoImage(file="C:/TeDOC/OpenFolder.gif"), command=self.askdirectory).pack(**button_opt)

# defining options for opening a directory
self.dir_opt = options = {}
options['initialdir'] = 'C:\\'
options['mustexist'] = False
options['parent'] = root
options['title'] = 'This is a title'


def askdirectory(self):
#Returns a selected directoryname.
return tkFileDialog.askdirectory(**self.dir_opt)

if __name__=='__main__':
  root = Tkinter.Tk()
  TkFileDialogExample(root).pack()
  root.mainloop()

2 个答案:

答案 0 :(得分:1)

首先,您必须使用self.image定义图像。所以试试:

self.image = Tkinter.PhotoImage(file="C:/TeDOC/OpenFolder.gif")

然后在你的按钮下,输入:

Tkinter.Button(self, image=self.image, command=self.askdirectory).pack(**button_opt)

答案 1 :(得分:0)

您必须将图像保存为自己。

self.image = Tkinter.PhotoImage(file="C:/TeDOC/OpenFolder.gif")
Tkinter.Button(..., image=Tkinter.PhotoImage(file="C:/TeDOC/OpenFolder.gif"), ...

如果删除它将不会显示。