一个计算器的样式:
例子中用到了两种布局:
- VBox
- Table(和面着重介绍Table)
先看代码:
import gtkclass Table(gtk.Window): def __init__(self): super(Table,self).__init__() 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): table=gtk.Table(5,4,True) table.attach(gtk.Button('Cls'),0,2,0,1) table.attach(gtk.Button('Bck'),2,3,0,1) table.attach(gtk.Button('Close'),3,4,0,1) table.attach(gtk.Button('1'),0,1,1,2) table.attach(gtk.Button('2'),1,2,1,2) table.attach(gtk.Button('3'),2,3,1,2) table.attach(gtk.Button('/'),3,4,1,2) table.attach(gtk.Button('4'),0,1,2,3) table.attach(gtk.Button('5'),1,2,2,3) table.attach(gtk.Button('6'),2,3,2,3) table.attach(gtk.Button('*'),3,4,2,3) table.attach(gtk.Button('7'),0,1,3,4) table.attach(gtk.Button('8'),1,2,3,4) table.attach(gtk.Button('9'),2,3,3,4) table.attach(gtk.Button('-'),3,4,3,4) table.attach(gtk.Button('0'),0,1,4,5) table.attach(gtk.Button('.'),1,2,4,5) table.attach(gtk.Button('='),2,3,4,5) table.attach(gtk.Button('+'),3,4,4,5) entry=gtk.Entry() vbox=gtk.VBox(False,2) vbox.pack_start(entry,False,False,0) vbox.pack_start(table) self.add(vbox)if __name__=='__main__': Table() gtk.main()说明:
table=gtk.Table(5,4,True)
#实例化一个Table #参数1:行数 #参数2:列数 #参数3:是否均匀分配每一单元格大小table.attach(gtk.Button('Cls'),0,2,0,1)
#给table添加一个子部件, 参数1:子部件 参数2:子部件X轴开始位置 参数3:子部件X轴结束位置 参数4:子部件Y轴开始位置 参数5:子部件Y轴结束位置#** 如果需要一个子部件占用多行,通过控制子部件的开始/结束位置即可例如Cls按钮