使用gtk.image.set_from_file替换图像

时间:2012-07-12 21:52:56

标签: image widget python-2.7 pygtk glade

我尝试添加,如果用户需要,请在python中更改小部件中的图像。

我使用Glade和gtk2 +,python 2.7.3,这就是我正在做的事情

image = gtk.Image()
image.set_from_file("MyImagePath.png")
image.show()

button = App.get_object('buttonExample')
button.add(image)

这是我在尝试更改图像时得到的结果

  

GtkWarning:尝试将类型为GtkImage的小部件添加到   GtkAspectFrame,但作为GtkBin子类,GtkAspectFrame只能   一次包含一个小部件;它已经包含一个类型的小部件   GtkImage

图像按预期正确加载,但如果我更改图像的输入路径,我希望我可以更改按钮图像,但这不是我得到的。

我尝试使用gtk.Image.clear(),但它说我不能在按钮上使用它(也许我只是搞乱了一些东西)

是否有一种很好的方法可以将图像加载到按钮并重新加载?

Thx

2 个答案:

答案 0 :(得分:1)

您必须在添加新图像之前从按钮中删除旧图像(错误消息非常简单),或者您可以尝试更改当前图像:

button.get_child().set_from_file("MyImagePath.png")

答案 1 :(得分:0)

这正是我所需要的。我按照你的说法在图像中使用了clear,并清理了按钮图像,如下所示:

App.get_object('buttonExample').remove(image)
image.clear()

非常感谢你的帮助!