sky*_*tux 4 python user-interface pygobject gtk3
首先,重要的是要提到我正在学习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)
Run Code Online (Sandbox Code Playgroud)
我还将Run按钮连接到回调函数,这样当我单击它时,我的脚本会创建然后显示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)
Run Code Online (Sandbox Code Playgroud)
最后,我的回调函数是(没有计算,只是为了测试目的将图像渲染到Frame):
def on_button_run_clicked(self, widget):
self.img = Gtk.Image.new_from_file('astro-tux.png')
self.frame_rgb.add(self.img)
Run Code Online (Sandbox Code Playgroud)
但是当我单击"运行"按钮时出现以下错误:
(makeRGB.py:2613):Gtk-WARNING**:尝试将类型为GtkImage的小部件添加到GtkFrame,但作为GtkBin子类,GtkFrame一次只能包含一个小部件; 它已经包含一个GtkImage类型的小部件
任何帮助表示赞赏!
你可以使用Gtk.Image.如果生成文件,则可以使用:
img = Gtk.Image.new_from_file('/path/to/my_file.png')
Run Code Online (Sandbox Code Playgroud)
并添加img到容器(GtkGrid在您的情况下).或者,如果您已经在Gtk.Image那里,您可以使用:
img.set_from_file('/path/to/my_file.png')
Run Code Online (Sandbox Code Playgroud)
而不是...from_file你可以使用from_pixbuf,你可以Gdk.Pixbuf从流创建一个.
通常,您可以使用C的文档并将习惯用法更改为Python.此外,您可以检查PyGObject中可用的演示,特别是用于处理图像的演示.