博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pygtk笔记--2.1:布局容器,VBox、Hbox、Alignment
阅读量:5990 次
发布时间:2019-06-20

本文共 2216 字,大约阅读时间需要 7 分钟。

hot3.png

我们使用一些软件的时候发现,软件上的按钮,图标,输入框等部件,摆放的井井有条。就算是我们改变软件窗体的大小,那些部件依然能适应我们的调整,以最优美的形式展现出来。这里就用到了布局管理

布局管理就是替你管理组件显示样式、位置等内容的

这里先介绍两个组件: 

label=gtk.Label('这个组件负责显示文字') 

button=gtk.Label('这个组件负责显示一个按钮')

VBox,HBox,Alignment:

VBox -- 纵向盒子布局

HBox -- 横向盒子布局
Alignment --  控制子部件的显示位置、大小(只能有一个子部件)

下面展示一个使用了以上几个部件做出来的简单效果:

 

分解:

 

  • 绿色部分是一个VBox
  • 每一个红色部分是一个HBox
  • 黄色部分是一个Aligenment

代码们:

#coding=utf-8__author__ = '一个胖子'import gtkclass VHA(gtk.Window):    def __init__(self):        super(VHA,self).__init__()        self.set_size_request(500,300)        self.set_position(gtk.WIN_POS_CENTER)        self.set_title('模拟一个麻将桌的布局')        self._init_child()        self.connect('destroy',gtk.main_quit)        self.show_all()    def _init_child(self):        vbox=gtk.VBox(False,3)        l1=gtk.Label('角')        l1.set_size_request(20,20)        l2=gtk.Label('角')        l2.set_size_request(20,20)        l3=gtk.Label('角')        l3.set_size_request(20,20)        l4=gtk.Label('角')        l4.set_size_request(20,20)        l5=gtk.Label('这个放在中间')        calign=gtk.Alignment(0.3,0,0,0.3)        calign.add(l5)        b1=gtk.Button('北')        b2=gtk.Button('西')        b3=gtk.Button('东')        b4=gtk.Button('南')        hbox1=gtk.HBox(False,3)        hbox1.pack_start(l1,False,False)        hbox1.pack_start(b1)        hbox1.pack_start(l2,False,False)        vbox.pack_start(hbox1,False,False)        hbox2=gtk.HBox(False,3)        hbox2.pack_start(b2,False,False)        hbox2.pack_start(calign)        hbox2.pack_start(b3,False,False)        vbox.pack_start(hbox2)        hbox3=gtk.HBox(False,3)        hbox3.pack_start(l3,False,False)        hbox3.pack_start(b4)        hbox3.pack_start(l4,False,False)        vbox.pack_start(hbox3,False,False)        self.add(vbox)if __name__=='__main__':    VHA()    gtk.main()

 

关键点解释:

 

gtk.HBox(False,3)#两个参数分别是(子组件大小是否平均分派,子部件间距)gtk.VBox(False,3)#参数意思同上vbox.pack_start(hbox1,False,False,0)#参数1:添加的子部件#参数2:子部件占用大小,True:与其他部件平均分配空间,False:最小占用#**参数2的False,必须和类初始化的时候的False一起使用才有效#参数3:没研究#参数4:没研究
alg=Alignment(1,1,0,0)#参数1:水平方向上,左侧空白位置占用比---1表示左侧空白位置占用全部,即组件在最右边显示#参数2:垂直方向上,上方空白位置占用比---1表示上方空白位置占用全部,即组件在最下边显示#参数3:子部件水平方向占用比,0最小显示,1最大显示#参数4:子部件垂直方向占用比,0最小显示,1最大显示

 

转载于:https://my.oschina.net/u/222523/blog/162938

你可能感兴趣的文章
应用一直报 DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null, DRIVER=4.17.29
查看>>
UICollectionView 使用 介绍
查看>>
详细解析关于域控制器的安全保障
查看>>
MHA 安装配置
查看>>
Oracle数据库编程
查看>>
Spring mvc ,spring ,ibatis 学习记录(1)
查看>>
记一次内网渗透检测
查看>>
开发过程中得错误
查看>>
【坑】 MySQL中,字符串和数值的比较
查看>>
我的友情链接
查看>>
secure crt vim颜色显示
查看>>
VMware ESXi 5.0安装图文教程
查看>>
头文件的2种方式与枚举的优势
查看>>
了解锁及上锁时长
查看>>
python request
查看>>
【基础】ARP协议-交换机工作原理-及广播风暴问题分析
查看>>
远程桌面管理服务器报“没有终端服务器客户端访问许可证”的解决方法
查看>>
我的友情链接
查看>>
ASA防火墙静态PAT端口范围测试
查看>>
我的友情链接
查看>>