gtk.Notebook — a tabbed notebook container.
class gtk.Notebook(gtk.Container): |
Functions
def gtk.notebook_set_window_creation_hook(func
, data
)
|
|
|
|
gtk.Container Signal Prototypes
def callback( | |
def callback( | |
def callback( | |
def callback( | |
def callback( | |
def callback( | |
def callback( | |
def callback( | |
def callback( |
The gtk.Notebook
widget is a gtk.Container
whose children are overlapping pages that can be switched between by using
tab labels along one edge. There are many configuration options for the
gtk.Notebook
. You
can choose on which edge the tabs appear (see set_tab_pos
());
whether the notebook should be made bigger or scrolling arrows added if
there are too many tabs to fit (see set_scrollable
());
and, whether there will be a popup menu allowing the users to switch pages.
(see popup_enable
(),
popup_disable
()).
The gtk.Notebook
is
particularly useful for displaying a large number of application controls
that can be grouped into several functional areas. The typical example is
the user preferences dialog in some applications. For example, a notebook
page can be setup for each of font selection, color selection, formating,
etc.
The gtk.Notebook
implementation of the gtk.Buildable
interface supports placing children into tabs by specifying "tab" as the
"type" attribute of a <child> element. Note that the content of the
tab must be created before the tab can be filled. A tab child can be specified
without specifying a <child> type attribute.
<object class="GtkNotebook"> <child> <object class="GtkLabel" id="notebook-content"> <property name="label">Content</property> </object> </child> <child type="tab"> <object class="GtkLabel" id="notebook-tab"> <property name="label">Tab</property> </object> </child> </object>
Beyond this general structure, several object classes define their own XML DTD fragments for filling in the ANY placeholders in the DTD above. Note that a custom element in a <child> element gets parsed by the custom tag handler of the parent object, while a custom element in an <object> element gets parsed by the custom tag handler of the object.
gtk.Notebook()
Returns : | the newly created gtk.Notebook |
Creates a new gtk.Notebook
widget with no pages.
def append_page(child
, tab_label
=None)
| the gtk.Widget to use as
the contents of the page. |
| the gtk.Widget to be
used as the label for the page. |
Returns : | in PyGTK 2.0 and 2.2 returns
None . In PyGTK 2.4 and above returns the index
number of the page in the notebook |
The append_page
() method appends a page
to the notebook using the widget specified by child
and the widget specified by tab_label
as the label on
the tab.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. Also if
tab_label
is not specified it will default to
None
.
def append_page_menu(child
, tab_label
=None, menu_label
=None)
| the gtk.Widget to use as
the contents of the page. |
| the gtk.Widget to be
used as the label for the page. |
| the widget to use as a label for the page-switch menu, if that is enabled. |
Returns : | in PyGTK 2.0 and 2.2 returns
None . In PyGTK 2.4 and above returns the index
number of the page in the notebook |
The append_page_menu
() method appends a
page to the notebook and specifying the widget to use as the label in the
popup menu. child
specifies the widget to use as the
contents of the page; tab_label
specifies the widget
to be used as the tab label; and, menu_label
specifies the widget to use in the popup menu.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. If
tab_label
is a gtk.Label
or
None
and menu_label
is
None
then the menu label will have the same text as the
tab label. Otherwise, menu_label
must be specified
and not None
. These parameters will default to
None
in PyGTK 2.4 as well.
def prepend_page(child
, tab_label
=None)
| the gtk.Widget to use as
the contents of the page. |
| the gtk.Widget to be
used as the label for the page. |
Returns : | in PyGTK 2.0 and 2.2 returns
None . In PyGTK 2.4 and above returns the index
number of the page in the notebook |
The prepend_page
() method prepends a
page to the notebook. child
specifies the widget to
use as the contents of the page and tab_label
specifies the widget to be used as the tab label.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. Also if
tab_label
is not specified it will default to
None
.
def prepend_page_menu(child
, tab_label
=None, menu_label
=None)
| the gtk.Widget to use as
the contents of the page. |
| the gtk.Widget to be
used as the label for the page. |
| the widget to use as a label for the page-switch menu, if that is enabled. |
Returns : | in PyGTK 2.0 and 2.2 returns
None . In PyGTK 2.4 and above returns the index
number of the page in the notebook |
The prepend_page_menu
() method prepends
a page to the notebook specifying the widget to use as the label in the
popup menu. child
specifies the widget to use as the
contents of the page; tab_label
specifies the widget
to use as the tab label; and, menu_label
specifies
the widget to use in the popup menu.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. If
tab_label
is a gtk.Label
or
None
and menu_label
is
None
then the menu label will have the same text as the
tab label. Otherwise, menu_label
must be specified
and not None
. These parameters will default to
None
in PyGTK 2.4 as well.
def insert_page(child
, tab_label
=None, position
=None)
| the gtk.Widget to use as
the contents of the page. |
| the
gtk.Widget to
be used as the label for the page. |
| the index (starting at 0) at which to insert the page, or -1 to append the page after all other pages. |
Returns : | in PyGTK 2.0 and 2.2 returns
None . In PyGTK 2.4 and above returns the index
number of the page in the notebook |
The insert_page
() method inserts a page
into the notebook at the location specified by
position
(0 is the first page).
child
is the widget to use as the contents of the
page and tab_label
specifies the widget to be used as
the tab label. If position
is -1 the page is appended
to the notebook. In PyGTK 2.4 and above if tab_label
is None
a default label if "page N" is used.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. Also if
tab_label
is not specified it will default to
None
.
In Pygtk 2.4 and above position
will
default to -1 if not specified.
def insert_page_menu(child
, tab_label
=None, menu_label
=None, position
=None)
| the gtk.Widget to use as
the contents of the page. |
| the
gtk.Widget to
be used as the label for the page. |
| the widget to use as a label for the page-switch menu, if that is enabled. |
| the index (starting at 0) at which to insert the page, or -1 to append the page after all other pages. |
Returns : | in PyGTK 2.0 and 2.2 returns
None . In PyGTK 2.4 and above returns the index
number of the page in the notebook |
The insert_page_menu
() method inserts a
page into the notebook at the location specified by
position
. child
specifies the
widget to use as the contents of the page; tab_label
specifies the widget to use as the tab label; and
menu_label
specifies the widget to use as the label
in the popup menu.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. If
tab_label
is a gtk.Label
or
None
and menu_label
is
None
then the menu label will have the same text as the
tab label. Otherwise, menu_label
must be specified
and not None
. These parameters will default to
None
in PyGTK 2.4 as well.
In Pygtk 2.4 and above position
will
default to -1 if not specified.
def remove_page(page_num
)
| the index of a notebook page, starting from 0. If -1, the last page will be removed. |
The remove_page
() method removes from
the notebook the page at the location specified by
index
. The value of index
starts from 0. If index
is -1 the last page of the
notebook will be removed.
def get_current_page()
Returns : | the index (starting from 0) of the current page in the notebook. If the notebook has no pages, then -1 will be returned. |
The get_current_page
() method returns
the page index of the current page numbered from 0.
def get_nth_page(page_num
)
| the index of a page in the notebook |
Returns : | the child widget, or None if
page_num is out of bounds. |
The get_nth_page
() method returns the
child widget contained in the page with the index specified by
page_num
. If page_num
is out
of bounds for the page range of the notebook this method returns
None
.
def get_n_pages()
Returns : | the number of pages in the notebook. |
This method is available in PyGTK 2.4 and above.
The get_n_pages
() method returns the
number of pages in a notebook.
def page_num(child
)
| a gtk.Widget |
Returns : | the index of the page containing
child , or -1 if child is not
in the notebook. |
The page_num
() method returns the index
of the page which contains the widget specified by
child
or -1 if no page contains
child
.
def set_current_page(page_num
)
| the index of the page to switch to, starting from 0. If negative, the last page will be used. If greater than the number of pages in the notebook, nothing will be done. |
The set_current_page
() method switches
to the page number specified by page_num
. If
page_num
is negative the last page is
selected.
def next_page()
The next_page
() method switches to the
next page. Nothing happens if the current page is the last page.
def prev_page()
The prev_page
() method switches to the
previous page. Nothing happens if the current page is the first page.
def set_show_border(show_border
)
| if True a bevel should be
drawn around the notebook. |
The show_border
() method sets the
"show-border" property to the value of show_border
.
If show_border
is True
a bevel
will be drawn around the notebook pages. This only has a visual effect when
the tabs are not shown. See set_show_tabs
().
def get_show_border()
Returns : | True if the bevel should be
drawn |
The get_show_border
() method returns
the value of the "show-border" property. If "show-border" is
True
a bevel will be drawn around the notebook pages when
tabs are not shown. See set_show_border
().
def set_show_tabs(show_tabs
)
| if True the tabs should be
shown. |
The set_show_tabs
() method sets the
"show-tabs" property to the value of show_tabs
. If
show_tabs
is True
the notebook
tabs will be displayed.
def get_show_tabs()
Returns : | True if the tabs are
shown |
The get_show_tabs
() method returns the
value of the "show-tabs" property. If "show-tabs" is True
the tabs of the notebook are shown. See set_show_tabs
().
def set_tab_pos(pos
)
| the edge to draw the tabs at:
gtk.POS_LEFT , gtk.POS_RIGHT ,
gtk.POS_TOP or
gtk.POS_BOTTOM . |
The set_tab_pos
() method sets the edge
at which the tabs for switching pages in the notebook are drawn as specified
by pos
. The value of pos
can
be one of: gtk.POS_LEFT
,
gtk.POS_RIGHT
, gtk.POS_TOP
or
gtk.POS_BOTTOM
.
def get_tab_pos()
Returns : | the edge at which the tabs are drawn |
The get_tab_pos
() method returns the
edge at which the tabs for switching pages in the notebook are drawn. The
return value is one of: gtk.POS_LEFT
,
gtk.POS_RIGHT
, gtk.POS_TOP
or
gtk.POS_BOTTOM
.
def set_scrollable(scrollable
)
| if True scroll arrows should
be added |
The set_scrollable
() method sets the
"scrollable" property to the value specified by
scrollable
. If scrollable
is
True
the tab label area will have arrows for scrolling if
there are too many tabs to fit in the area.
def get_scrollable()
Returns : | True if arrows for scrolling
are enabled |
The get_scrollable
() method returns the
value of the "scrollable" property. If "scrollable" is
True
the tab label area has scrolling arrows enabled and
displayed if there are too many tabs to fit in the display area. See set_scrollable
().
def popup_enable()
The popup_enable
() method enables the
popup menu: if the user clicks with the right mouse button on the tabs, a
menu with all the pages will be popped up.
def get_tab_label(child
)
| a widget contained in a notebook page |
Returns : | the tab label widget for the page containing
child |
The get_tab_label
() method returns the
tab label widget for the page containing the widget
child
. None
is returned if
child
is not in the notebook.
def set_tab_label(child
, tab_label
=None)
| a widget contained in a notebook page |
| the tab label widget to
use or None . |
The set_tab_label
() method replaces the
tab label for the notebook page containing child
with
the widget specified by tab_label
.
In PyGTK 2.4 and above tab_label
can be
None
to use a default label. Also if
tab_label
is not specified it will default to
None
.
def set_tab_label_text(child
, tab_text
)
| a widget contained in a notebook page |
| the new label text |
The set_tab_label_text
() method creates
a new label with the text specified by tab_text
and
sets it as the tab label for the page containing
child
.
def get_tab_label_text(child
)
| a widget contained in a notebook page |
Returns : | value: the text of the tab label, or
None if the tab label widget is not a gtk.Label or
child is not in a notebook page. |
The get_tab_label_text
() retrieves the
text of the tab label for the page containing child
.
This method returns None
if child
is not in a notebook page or the page tab label is not a gtk.Label
widget.
def get_menu_label(child
)
| a widget contained in a notebook page |
Returns : | the menu label, or None if
the notebook page does not have a menu label other than the default (the tab
label) or if child is not in a notebook page. |
The get_menu_label
() method retrieves
the menu label widget of the page containing child
.
If child
is not in a notebook page or the menu label
has not been set (it defaults to the tab label), this method returns
None
.
def set_menu_label(child
, menu_label
=None)
| a widget contained in a notebook page |
| a widget to be used as the new menu label |
The set_menu_label
() replaces the menu
label for the page containing child
with the widget
specified by menu_label
.
In PyGTK 2.4 and above menu_label
can be
None
to use a default label. Also if
menu_label
is not specified it will default to
None
. See the append_page_menu
()
method for more information.
def set_menu_label_text(child
, menu_text
)
| a widget contained in a notebook page |
| the new menu label text |
The set_menu_label_text
() method
creates a new label widget and replaces the menu label of the page
containingchild
.
def get_menu_label_text(child
)
| a child widget of a notebook page. |
Returns : | value: the text of the tab label, or
None if the widget does not have a menu label other than
the default menu label, or the menu label widget is not a gtk.Label or
child is not contained in a notebook
page. |
The get_menu_label_text
() method
retrieves the text of the menu label for the page containing
child
. If child
is not in a
notebook page or the menu label is not a gtk.Label
widget or
the menu label has not been set (it default to the tab label), the return
value is None
.
def query_tab_label_packing(child
)
| the page |
Returns : | a tuple containing: the expand value, the fill value and the pack type |
The query_tab_label_packing
() method
returns a tuple containing the packing attributes (expand, fill, pack type)
for the tab label of the page containing child
. If
the expand attribute is True
the tab can expand to take
up the free space in the tab area. If fill is True
the
label widget in the tab can use up all the space in the tab. The pack type
can be one of gtk.PACK_START
or
gtk.PACK_END
to specify whether the tab is packed to the
left or right if tabs are on the top or bottom edge (top or bottom if the
tabs are on the left or right edge).
def set_tab_label_packing(child
, expand
, fill
, pack_type
)
| a widget contained in a notebook page |
| if True the tab can expand
to fill the free space in the tab area |
| if True the label widget can
fill the space in the tab |
| the position of the tab:
gtk.PACK_START or
gtk.PACK_END |
The set_tab_label_packing
() method sets
the packing parameters for the tab label of the page containing
child
. If expand
is
True
the tab can expand to take up the free space in the
tab area. If fill
is True
the
label widget in the tab can use up all the space in the tab. The
pack_type
can be one of
gtk.PACK_START
or gtk.PACK_END
to
specify whether the tab is packed to the left or right if tabs are on the
top or bottom edge (top or bottom if the tabs are on the left or right
edge).See gtk.Box.pack_start
()
for the exact meaning of the parameters.
def reorder_child(child
, position
)
| the child widget to move |
| the index of the page that
child is to move to, or -1 to move to the
end |
The reorder_child
() method reorders
the notebook pages so that child
appears in the page
whose index is specified by position
. If
position
is greater than or equal to the number of
children in the list or negative, child
will be moved
to the end of the list.
def set_group_id(group_id
)
| a group identifier, or -1 to unset it |
This method is available in PyGTK 2.10 and above.
The set_group_id
() method sets the
group identifier for the notebook to the value specified by
group_id
. Notebooks sharing the same group
identifier will be able to exchange tabs via drag and drop. A notebook
with group identifier -1 will not be able to exchange tabs with any
other notebook.
def get_group_id()
Returns : | the group identifier, or -1 if none is set. |
This method is available in PyGTK 2.10 and above.
The get_group_id
() method returns the
current group identifier for the notebook.
def get_tab_reorderable(child
)
| a child gtk.Widget |
Returns : | True if the tab is
reorderable. |
This method is available in PyGTK 2.10 and above.
The get_tab_reorderable
() method
returns True
if the tab can be reordered via drag
and drop.
def set_tab_reorderable(child
, reorderable
)
| a child gtk.Widget |
| if True the tab is
reorderable. |
This method is available in PyGTK 2.10 and above.
The set_tab_reorderable
() method sets
the "reorderable" property of child
to the
value of reorderable
. If
reorderable
is True
, the
notebook tab can be reordered via drag and drop.
def get_tab_detachable(child
)
| a child gtk.Widget |
Returns : | if True the tab is
detachable. |
This method is available in PyGTK 2.10 and above.
The get_tab_detachable
() method returns
the value of the "detachable" property of
child
. The method returns
True
if the tab contents can be detached from
notebook
.
def set_tab_detachable(child
, detachable
)
| a child gtk.Widget |
| if True the tab is
detachable or not |
This method is available in PyGTK 2.10 and above.
The set_tab_detachable
() method sets
the "detachable" property of child
to the value
specified by detachable
. If
detachable
is True
,
child
can be moved from this notebook to
another notebook or widget.
Note that two notebooks must share a common group identifier
(see the set_group_id
()
method) to allow automatic tabs interchange between them.
If you want a widget to interact with a notebook through DnD (i.e.: accept dragged tabs from it) it must be set as a drop destination and accept the target 'GTK_NOTEBOOK_TAB'. The notebook will fill the selection with a reference to the child widget that corresponds to the dropped tab.
If you want a notebook to accept drags from other widgets, you will have to set your own DnD code to do it.
def set_group_name(group_name
)
| the group name, or None . |
This method is available in PyGTK 2.24 and above.
The set_group_name
() method sets a group name for notebook.
def get_group_name()
Returns : | the group name, or None . |
This method is available in PyGTK 2.24 and above.
The get_group_name
() method gets the current group name for notebook.
def get_tab_hborder()
Returns : | the horizontal width of a tab border. |
This method is available in PyGTK 2.22 and above.
The get_tab_hborder
() method returns the horizontal width of a tab border.
def get_tab_vborder()
Returns : | the vertical width of a tab border. |
This method is available in PyGTK 2.22 and above.
The get_tab_vborder
() method returns the vertical width of a tab border.
def get_action_widget(pack_type
)
| pack type of the action widget to receive. |
Returns : | the action widget with the given pack_type or None
when this action widget has not been set. |
This method is available in PyGTK 2.22 and above.
The get_action_widget
() method gets one of the action widgets.
def set_action_widget(widget
, pack_type
)
| a gtk.Widget . |
| pack type of the action widget. |
This method is available in PyGTK 2.22 and above.
The set_action_widget
() method sets widget as one of the action widgets. Depending on
the pack type the widget will be placed before or after the tabs. You can use a gtk.Box
if you need to pack more than one widget on the same side.
Note that action widgets are "internal" children of the notebook and thus not included in the list returned
from foreach
().
def gtk.notebook_set_window_creation_hook(func
, data
)
| a function to call when a tab is dropped in an empty area. |
| data to pass to
func |
This function is available in PyGTK 2.10 and above.
The gtk.notebook_set_window_creation_hook
function installs a global function (specified by
func
) used to create a window when a detached tab
is dropped in an empty area.
The signature of the callback function
func
is:
def func(source, page, x, y, user_data)
where source
is the
gtk.Notebook
of the drag operation, page
is the child
gtk.Widget
affected,
x
is the X coordinate where the drop happens,
y
is the Y coordinate where the drop happens,
user_data
is the user data to pass to func
.
This function is used by
gtk.Notebook
when a detachable tab is dropped in the root window,
it's used to create a window containing a notebook where the tab will be attached.
This function will also be responsible of moving/resizing the window and adding the
necessary properties to the notebook (i.e.: group-id). If the
function returns None
, the drag will be cancelled.
def callback(notebook
, offset
, user_param1
, ...
)
| the notebook that received the signal |
| the count of pages to move (negative count is backward) |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
The "change-current-page" signal is emitted when the page forward or page backward request is issued.
def callback(notebook
, page
, x
, y
, user_param1
, ...
)
| the notebook that received the signal |
| the tab of notebook that is being detached |
| the X coordinate where the drop happens |
| the Y coordinate where the drop happens |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
The "create-window" signal is emitted when a detachable tab is dropped on the root window.
A handler for this signal can create a window containing a notebook where the tab will be attached. It is also responsible for moving/resizing the window and adding the necessary properties to the notebook (e.g. the GtkNotebook:group-id ).
def callback(notebook
, type
, user_param1
, ...
)
| the notebook that received the signal |
| the type of tab:
gtk.NOTEBOOK_TAB_FIRST or
gtk.NOTEBOOK_TAB_LAST |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
Returns : | True if the signal was
handled |
The "focus-tab" signal is emitted when the focus is changed by tabbing.
def callback(notebook
, direction_type
, user_param1
, ...
)
| the notebook that received the signal |
| the direction type of the focus move:
gtk.DIR_TAB_FORWARD ,
gtk.DIR_TAB_BACKWARD , gtk.DIR_UP ,
gtk.DIR_DOWN , gtk.DIR_LEFT or
gtk.DIR_RIGHT |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
The "move-focus-out" signal is emitted when the focus is moved
out of the notebook with the specified
direction_type
.
def callback(notebook
, child
, page_num
, user_param1
, ...
)
| the notebook that received the signal |
| the child gtk.Widget
affected |
| the new page number for
child |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
This signal is available in PyGTK 2.10 and above.
The "page-added" signal is emitted when a page is added to the notebook.
def callback(notebook
, child
, page_num
, user_param1
, ...
)
| the notebook that received the signal |
| the child gtk.Widget
affected |
| the new page number for
child |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
This signal is available in PyGTK 2.10 and above.
The "page-removed" signal is emitted after a page is removed from the notebook.
def callback(notebook
, child
, page_num
, user_param1
, ...
)
| the notebook that received the signal |
| the child gtk.Widget
affected |
| the new page number for
child |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
This signal is available in PyGTK 2.10 and above.
The "page-reordered" signal is emitted when a page has been reordered.
def callback(notebook
, move_focus
, user_param1
, ...
)
| the notebook that received the signal |
| if True move the
focus to a child widget |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
Returns : | True if the signal was
handled |
The "select-page" signal is emitted when a new child page is selected.
def callback(notebook
, page
, page_num
, user_param1
, ...
)
| the notebook that received the signal |
| the new current page |
| the index of the new current page |
| the first user parameter (if any) specified
with the connect () |
| additional user parameters (if any) |
The "switch-page" signal is emitted when the notebook page is
changed. Note the page
parameter is a GPointer and
not usable within PyGTK. Use the page_num
parameter
to retrieve the new current page using the get_nth_page
()
method.