在Python&中垂直居中绘图区域。 GTK + 3

时间:2016-06-24 11:15:29

标签: python gtk3 glade

我在其中创建了一个带有绘图图像的对话框。该地区正在扩大规模 当我更改对话框大小。当它这样做时,绘图区域粘在顶部而不是垂直对齐。 据我所知,此小部件不支持yalign,因此我需要AspectFrame,但是当我添加带有glade的方面框架时,DrawArea不会显示。< / p>

以下是我的工作代码的相关部分:

class MyDialog(object):

    def __init__(self):

        self.builder = Gtk.Builder()
        self.glade_file = os.path.join(abspath(dirname(__file__)), 'dialog.glade')

        self.builder.add_from_file(self.glade_file)
        self.builder.connect_signals(self)

        # get widgets
        self.dialog = self.builder.get_object('dialog')
        self.box = self.dialog.get_child()

        da = Gtk.DrawingArea()
        self.box.pack_start(da, True, True, 0)

        da.surface = None
        da.connect('draw', self.draw)
        da.connect('configure-event', self.configure_event_cb)

代码创建以下内容:

funny dialog

要添加方面框架,我执行了以下操作:

da = Gtk.DrawingArea()
#self.box.pack_start(da, True, True, 0)
self.frame = self.builder.get_object('aspectframe1')
self.frame.add(da)

但这导致DrawingArea未显示,并出现以下错误:

 GdkPixbuf-CRITICAL **: gdk_pixbuf_scale_simple: assertion 'dest_height > 0' failed
Traceback (most recent call last):
  File "test_draw4.py", line 134, in configure_event_cb
    clear_surface(w, h, widget.surface, self.pb)
  File "test_draw4.py", line 29, in clear_surface
    Gdk.cairo_set_source_pixbuf(cr, pb, 0, 0)
TypeError: Argument 1 does not allow None as a value

请帮助我DrawingArea

垂直中心

0 个答案:

没有答案