#!/usr/bin/env python # example buttonbox.py import pygtk pygtk.require('2.0') import gtk class ButtonBoxExample: # Create a Button Box with the specified parameters def create_bbox(self, horizontal, title, spacing, layout): frame = gtk.Frame(title) if horizontal: bbox = gtk.HButtonBox() else: bbox = gtk.VButtonBox() bbox.set_border_width(5) frame.add(bbox) # Set the appearance of the Button Box bbox.set_layout(layout) bbox.set_spacing(spacing) button = gtk.Button(stock=gtk.STOCK_OK) bbox.add(button) button = gtk.Button(stock=gtk.STOCK_CANCEL) bbox.add(button) button = gtk.Button(stock=gtk.STOCK_HELP) bbox.add(button) return frame def __init__(self): window = gtk.Window(gtk.WINDOW_TOPLEVEL) window.set_title("Button Boxes") window.connect("destroy", lambda x: gtk.main_quit()) window.set_border_width(10) main_vbox = gtk.VBox(False, 0) window.add(main_vbox) frame_horz = gtk.Frame("Horizontal Button Boxes") main_vbox.pack_start(frame_horz, True, True, 10) vbox = gtk.VBox(False, 0) vbox.set_border_width(10) frame_horz.add(vbox) vbox.pack_start(self.create_bbox(True, "Spread (spacing 40)", 40, gtk.BUTTONBOX_SPREAD), True, True, 0) vbox.pack_start(self.create_bbox(True, "Edge (spacing 30)", 30, gtk.BUTTONBOX_EDGE), True, True, 5) vbox.pack_start(self.create_bbox(True, "Start (spacing 20)", 20, gtk.BUTTONBOX_START), True, True, 5) vbox.pack_start(self.create_bbox(True, "End (spacing 10)", 10, gtk.BUTTONBOX_END), True, True, 5) frame_vert = gtk.Frame("Vertical Button Boxes") main_vbox.pack_start(frame_vert, True, True, 10) hbox = gtk.HBox(False, 0) hbox.set_border_width(10) frame_vert.add(hbox) hbox.pack_start(self.create_bbox(False, "Spread (spacing 5)", 5, gtk.BUTTONBOX_SPREAD), True, True, 0) hbox.pack_start(self.create_bbox(False, "Edge (spacing 30)", 30, gtk.BUTTONBOX_EDGE), True, True, 5) hbox.pack_start(self.create_bbox(False, "Start (spacing 20)", 20, gtk.BUTTONBOX_START), True, True, 5) hbox.pack_start(self.create_bbox(False, "End (spacing 20)", 20, gtk.BUTTONBOX_END), True, True, 5) window.show_all() def main(): # Enter the event loop gtk.main() return 0 if __name__ == "__main__": ButtonBoxExample() main()
一、按钮盒构件
按钮盒构件(GtkButtonBox) 可以很方便地快速布置一组按钮。它有水平和垂直两种样式。函数gtk_hbutton_box_new创建水平按钮盒构件。函数gtk_vbutton_box_new创建垂直按钮盒构件。
1.
名称::
gtk_hbutton_box_new
gtk_vbutton_box_new
功能:
创建按钮盒构件
头文件:
#include
函数原形:
GtkWidget *gtk_hbutton_box_new( void );
GtkWidget *gtk_vbutton_box_new( void );
参数:
无
返回值:
新的按钮盒构件
创建完按钮盒构件就可以将按钮放置在按钮盒中了。放置按扭用通用容器函数gtk_container_add来完成。
函数gtk_hbutton_box_set_spacing_default和gtk_vbutton_box_set_spacing_default可以改变按钮的间距。
函数gtk_hbutton_box_get_spacing_default和gtk_vbutton_box_get_spacing_default可以获得按钮的间距。
2.
名称::
gtk_hbutton_box_set_spacing_default
gtk_vbutton_box_set_spacing_default
功能:
设置按钮间距
头文件:
#include
函数原形:
void gtk_hbutton_box_set_spacing_default( gint spacing );
void gtk_vbutton_box_set_spacing_default( gint spacing );
参数:
spacing 间距
返回值:
无
3.
名称::
gtk_hbutton_box_get_spacing_default
gtk_vbutton_box_get_spacing_default
功能:
取得按钮间距
头文件:
#include
函数原形:
gint gtk_hbutton_box_get_spacing_default( void );
gint gtk_vbutton_box_get_spacing_default( void );
参数:
无
返回值:
按钮间距
函数gtk_hbutton_box_set_layout_default和gtk_vbutton_box_set_layout_default可以设置按扭构件的布局。
函数gtk_hbutton_box_get_layout_default和gtk_vbutton_box_get_layout_default取得按钮构件布局。
4.
名称::
gtk_hbutton_box_set_layout_default
gtk_vbutton_box_set_layout_default
功能:
设置按钮盒的布局
头文件:
#include
函数原形:
void gtk_hbutton_box_set_layout_default( GtkButtonBoxStyle layout );
void gtk_vbutton_box_set_layout_default( GtkButtonBoxStyle layout );
参数:
layout 按钮盒的布局
返回值:
无
layout参数可以取以下值:
GTK_BUTTONBOX_DEFAULT_STYLE
GTK_BUTTONBOX_SPREAD
GTK_BUTTONBOX_EDGE
GTK_BUTTONBOX_START
GTK_BUTTONBOX_END
5.
名称::
gtk_hbutton_box_get_layout_default
gtk_vbutton_box_get_layout_default
功能:
获得按钮盒的布局
头文件:
#include
函数原形:
GtkButtonBoxStyle gtk_hbutton_box_get_layout_default( void );
GtkButtonBoxStyle gtk_vbutton_box_get_layout_default( void );
参数:
无
返回值:
按钮盒的布局