首先,重要的是要提到我正在学习Python和Gtk+ 3,所以我不是这些语言的高级程序员。
我正在尝试在 Gtk3 中为创建png图像的 Python 脚本创建一个图形界面,并且我想显示它,但是PyGobject文档非常稀缺,以至于我还没有找到一种方法来做到这一点。到目前为止,我的界面如下所示:
按钮和文本条目排列在网格中,我想将右侧的大空间(由大按钮表示)留空,直到脚本完成构建图像,然后在该区域显示。代码在这里。
有没有办法在 Gtk3 中使用 Python 来做到这一点?
提前致谢,
德语。
编辑
看看@gpoo 指出的演示,我发现了Frame小部件,并在我的 GUI 中实现了它。这是它的样子:
在窗口类中,我将 Frame 添加到网格中:
self.frame_rgb = Gtk.Frame(label='RGB image')
self.frame_rgb.set_label_align(0.5, 0.5)
self.frame_rgb.set_shadow_type(Gtk.ShadowType.IN)
self.grid.attach_next_to(self.frame_rgb, self.label_img_name,
Gtk.PositionType.RIGHT, 3, 8)
我还将运行按钮连接到一个回调函数,这样当我单击它时,我的脚本会创建并显示 png 图像:
self.button_run = Gtk.Button(stock=Gtk.STOCK_EXECUTE)
self.button_run.connect('clicked', self.on_button_run_clicked)
self.grid.attach_next_to(self.button_run, self.entry_b_img,
Gtk.PositionType.BOTTOM, 1, 1)
最后,我的回调函数是(还没有计算,仅将图像渲染到 Frame 以进行测试):
def on_button_run_clicked(self, widget):
self.img = Gtk.Image.new_from_file('astro-tux.png')
self.frame_rgb.add(self.img)
但是当我单击运行按钮时出现以下错误:
(makeRGB.py:2613): Gtk-WARNING **: 试图将 GtkImage 类型的小部件添加到 GtkFrame,但作为 GtkBin 子类,GtkFrame 一次只能包含一个小部件;它已经包含一个 GtkImage 类型的小部件
任何帮助表示赞赏!