gpt4 book ai didi

python - 如何更改 GtkImage 显示的图像?

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:20 26 4
gpt4 key购买 nike

在我的程序中,我想通过单击按钮来更改图像,但我找不到该功能

class TestGdkPixbuf(Gtk.Window):
Cover= "image.png"
Cover2= "image2.png"

def __init__(self):
Gtk.Window.__init__(self, title="TestGdkPixbuf")

mainLayout = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)


self.image = GdkPixbuf.Pixbuf.new_from_file_at_size(self.Cover, 250, 250)
image_renderer = Gtk.Image.new_from_pixbuf(self.image)

button = Gtk.Button(label='Change')
button.connect('clicked', self.editPixbuf)

mainLayout.pack_start(image_renderer, True, True, 0)
mainLayout.pack_start(button, True, True, 0)

self.add(mainLayout)

def editPixbuf(self, button):
self.image = GdkPixbuf.Pixbuf.new_from_file_at_size(self.Cover2, 250, 250)
print(self.Cover2)

非常感谢您的帮助

最佳答案

当您创建 Gtk.Image、image_renderer 时,您提供了一个 pixbuf、self.image

然后在按钮回调中,您确实将图像加载到 pixbuf 中,但没有使用新的 pixbuf 更新 image_renderer。你应该使用 Gtk.Image set_from_pixbuf .

尝试:

class TestGdkPixbuf(Gtk.Window):
Cover= "image.png"
Cover2= "image2.png"

def __init__(self):
Gtk.Window.__init__(self, title="TestGdkPixbuf")

mainLayout = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)


self.image = GdkPixbuf.Pixbuf.new_from_file_at_size(self.Cover, 250, 250)
self.image_renderer = Gtk.Image.new_from_pixbuf(self.image)

button = Gtk.Button(label='Change')
button.connect('clicked', self.editPixbuf)

mainLayout.pack_start(image_renderer, True, True, 0)
mainLayout.pack_start(button, True, True, 0)

self.add(mainLayout)

def editPixbuf(self, button):
self.image = GdkPixbuf.Pixbuf.new_from_file_at_size(self.Cover2, 250, 250)
self.image_renderer.set_from_pixbuf (self.image)
print(self.Cover2)

关于python - 如何更改 GtkImage 显示的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47266831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com