使用 Python GTK+ 3 将对话框按钮居中对齐
Aligning dialog buttons to center using Python GTK+ 3
我制作了一个使用 GTK 的 Python 应用程序。我想向用户发送一个对话框,要求确认操作,但是在根据 this 教程创建对话框后,我注意到没有明显的方法可以将 'Cancel' 和 'OK' 按钮。
该教程的相关代码如下:
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()
在上面的示例中,按钮右对齐。有什么方法可以使用这种创建对话框的方法使按钮居中对齐吗?
Question: Aligning dialog buttons to center
- Gtk.Dialog.get_action_area
- Gtk.Widget.props.parent
- Gtk.Box.set_child_packing
- Gtk.Box.set_center_widget
您想要居中 Gtk.Dialog
的 action_area
,其类型为 Gtk.ButtonBox
。
获取 action_area
Note: Deprecated since version 3.12: Direct access to the action area is discouraged
a_area = self.get_action_area()
您需要 action_area
的 parent
,类型为 Gtk.Box
获取 parent
框。
box = a_area.props.parent
To center a Gtk.Widget
你必须重置默认的 packing
expand=False
到 True
.
对于所有其他 packing
选项没有变化。
box.set_child_packing(a_area, True, False, 0, Gtk.PackType.END)
现在,您可以居中 action_area
a_area.set_center_widget(None)
Output:
测试 Python:3.5 - gi.__version__:3.22.0
我不知道这是否是一种作弊方式,但它似乎有效。
action_area= self.get_action_area()
action_area.set_halign(3)
我制作了一个使用 GTK 的 Python 应用程序。我想向用户发送一个对话框,要求确认操作,但是在根据 this 教程创建对话框后,我注意到没有明显的方法可以将 'Cancel' 和 'OK' 按钮。
该教程的相关代码如下:
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()
在上面的示例中,按钮右对齐。有什么方法可以使用这种创建对话框的方法使按钮居中对齐吗?
Question: Aligning dialog buttons to center
- Gtk.Dialog.get_action_area
- Gtk.Widget.props.parent
- Gtk.Box.set_child_packing
- Gtk.Box.set_center_widget
您想要居中
Gtk.Dialog
的action_area
,其类型为Gtk.ButtonBox
。
获取action_area
Note: Deprecated since version 3.12: Direct access to the action area is discouraged
a_area = self.get_action_area()
您需要
action_area
的parent
,类型为Gtk.Box
获取parent
框。box = a_area.props.parent
To center a
Gtk.Widget
你必须重置默认的packing
expand=False
到True
.
对于所有其他packing
选项没有变化。box.set_child_packing(a_area, True, False, 0, Gtk.PackType.END)
现在,您可以居中
action_area
a_area.set_center_widget(None)
Output:
测试 Python:3.5 - gi.__version__:3.22.0
我不知道这是否是一种作弊方式,但它似乎有效。
action_area= self.get_action_area()
action_area.set_halign(3)