使用Python GTK + 3将对话框按钮对齐以居中

时间:2019-09-15 23:01:50

标签: python python-3.x gtk pygtk

我已经制作了一个使用GTK的Python应用程序。我想向用户发送一个对话框,要求确认操作,但是根据this教程创建对话框后,我注意到没有明显的方法可以使“取消”和“确定”按钮居中对齐。

该教程中的相关代码如下:

class DialogExample(Gtk.Dialog):
    def __init__(self, parent):
        Gtk.Dialog.__init__(self, "My Dialog", parent, 0,
            (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
             Gtk.STOCK_OK, Gtk.ResponseType.OK))
        self.set_default_size(150, 100)
        label = Gtk.Label("This is a dialog to display additional information")
        box = self.get_content_area()
        box.add(label)
        self.show_all()

在上面的示例中,按钮向右对齐。是否可以使用这种创建对话框的方法来使按钮居中对齐?

2 个答案:

答案 0 :(得分:1)

  

问题:将对话框按钮居中对齐



  1. 您要居中类型为Gtk.Dialog的{​​{1}}的{​​{1}}。
    获取Gtk.ButtonBox

      

    注意:自版本3.12开始不推荐使用:建议不要直接访问操作区域

    action_area
  2. 您需要a_area = self.get_action_area() parent类型的action_area
    进入Gtk.Box框。

    parent
  3. 要使box = a_area.props.parent 居中,您必须将默认的Gtk.Widget packing重设为expand=False
    对于所有其他True选项,则保持不变。

    packing
  4. 现在,您可以居中 box.set_child_packing(a_area, True, False, 0, Gtk.PackType.END)

    action_area

  

输出

enter image description here

使用Python测试:3.5-gi .__ version __:3.22.0

答案 1 :(得分:0)

我不知道这是否是一种欺骗性的方法,但似乎可行。

action_area= self.get_action_area()
action_area.set_halign(3)