PyGobject(十九)布局容器之Alignment

Gtk.Alignment

继承关系

Gtk.Alignment控制子部件的对齐方式和大小。

Gtk.Alignment是Gtk.Bin的直接子类
这里写图片描述

Methods

方法修饰词方法名及参数
staticnew (xalign, yalign, xscale, yscale)
get_padding ()
set (xalign, yalign, xscale, yscale)
set_padding (padding_top, padding_bottom, padding_left, padding_right)

Virtual Methods

Properties

NameTypeFlagsShort Description
bottom-paddingintd/r/wThe padding to insert at the bottom of the widget. deprecated
left-paddingintd/r/wThe padding to insert at the left of the widget. deprecated
right-paddingintd/r/wThe padding to insert at the right of the widget. deprecated
top-paddingintd/r/wThe padding to insert at the top of the widget. deprecated
xalignfloatd/r/w水平对齐方式,0.0左对齐,1.0右对齐 deprecated
xscalefloatd/r/w水平剩余空间分配给子部件,0.0不分配,1.0分配全部剩余空间 deprecated
yalignfloatd/r/w垂直对齐方式,0.0上对齐,1.0下对齐 deprecated
yscalefloatd/r/w垂直剩余空间分配给子部件,0.0不分配,1.0分配全部剩余空间 deprecated

Signals

NameShort Description

例子

这里写图片描述
代码:

#!/usr/bin/env python3
# Created by xiaosanyu at 16/7/7
# section 020
TITLE = "Alignment"
DESCRIPTION = """
The Gtk.Alignment widget controls the alignment and size of its child widget.
It has four settings: xscale, yscale, xalign, and yalign.
"""
import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

anchor = {"Left": (0, 0, 0, 0), "Right": (1, 0, 0, 0), "Top": (0.5, 0, 0, 0), "Buttom": (0.5, 1, 0, 0),
          "Center": (0.5, 0.5, 0, 0), "XFull": (0.5, 0.5, 1, 0), "YFull": (0.5, 0.5, 0, 1)}


class AlignmentWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Alignment Example")
        self.set_size_request(500, 200)
        grid = Gtk.Grid()
        grid.set_border_width(20)
        grid.set_column_spacing(20)
        grid.set_row_spacing(20)

        for i, (key, value) in enumerate(anchor.items()):
            frame = Gtk.Frame.new()
            frame.set_shadow_type(Gtk.ShadowType.ETCHED_OUT)
            frame.set_size_request(150, 100)
            align = Gtk.Alignment.new(value[0], value[1], value[2], value[3])
            button = Gtk.Button(key)
            align.add(button)
            frame.add(align)
            grid.attach(frame, i % 3, i / 3, 1, 1)
        self.add(grid)


def main():
    win = AlignmentWindow()
    win.connect("delete-event", Gtk.main_quit)
    win.show_all()
    Gtk.main()


if __name__ == "__main__":
    main()

分析主要代码
定义七个Alignment参数

anchor = {"Left": (0, 0, 0, 0), "Right": (1, 0, 0, 0), "Top": (0.5, 0, 0, 0), "Buttom": (0.5, 1, 0, 0),
"Center": (0.5, 0.5, 0, 0), "XFull": (0.5, 0.5, 1, 0), "YFull": (0.5, 0.5, 0, 1)}

根据上述7组信息创建7个Alignment,每个Alignment中添加一个button,将这7个Alignment添加到7个frame中

for i, (key, value) in enumerate(anchor.items()):
    frame = Gtk.Frame.new()         
    frame.set_shadow_type(Gtk.ShadowType.ETCHED_OUT)
    frame.set_size_request(150, 100)
    align = Gtk.Alignment.new(value[0], value[1], value[2], value[3])
    button = Gtk.Button(key)
    align.add(button)
    frame.add(align)
    grid.attach(frame, i % 3, i / 3, 1, 1)





代码下载地址:http://download.youkuaiyun.com/detail/a87b01c14/9594728

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanxiaochengyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值