【问题标题】:Aligning dialog buttons to center using Python GTK+ 3使用 Python GTK+ 3 将对话框按钮居中对齐
【发布时间】:2020-04-09 23:34:20
【问题描述】:

我制作了一个使用 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()

在上面的示例中,按钮向右对齐。有没有办法使用这种创建对话框的方法使按钮居中对齐?

【问题讨论】:

    标签: python python-3.x gtk pygtk


    【解决方案1】:

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



    1. 您想要居中Gtk.Dialogaction_area,它的类型是Gtk.ButtonBox
      获取action_area

      注意:自 3.12 版起已弃用:不鼓励直接访问操作区域

      a_area = self.get_action_area()
      
    2. 您需要action_areaparent,其类型为Gtk.Box
      获取parent 框。

      box = a_area.props.parent
      
    3. 居中 Gtk.Widget,您必须将默认 packing expand=False 重置为 True
      对于所有其他 packing 选项没有变化。

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

      a_area.set_center_widget(None)
      

    输出

    用 Python 测试:3.5 - gi.__version__:3.22.0

    【讨论】:

      【解决方案2】:

      我不知道这是否是一种欺骗方式,但它似乎有效。

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

      【讨论】:

        猜你喜欢
        • 2020-12-30
        • 1970-01-01
        • 2012-07-20
        • 2012-09-12
        • 1970-01-01
        • 2012-02-11
        • 2014-12-12
        • 1970-01-01
        • 2013-08-05
        相关资源
        最近更新 更多