def create_treelist(self):
"""create_treelist
Create list of options
"""
# Add some messages to the window
self.liststore = gtk.ListStore(str,str,'gboolean')
# we'll add some data now
self.liststore.append(['Kernel', gtk.STOCK_OPEN, True])
self.liststore.append(['CPU', gtk.STOCK_OPEN, True])
self.liststore.append(['RAM', gtk.STOCK_OPEN, True])
self.liststore.append(['Sound Modules', gtk.STOCK_OPEN, True])
self.liststore.append(['Sound Devices', gtk.STOCK_OPEN, True])
self.liststore.append(['Asound', gtk.STOCK_OPEN, True])
# create the TreeViewColumn to display the data
self.tvcolumn = gtk.TreeViewColumn('Categories')
# Append liststore model to treeview
self.treeview1.set_model(model=self.liststore)
# add tvcolumn to treeview
self.treeview1.append_column(self.tvcolumn)
# create a CellRendererText to render the data
self.cell = gtk.CellRendererText()
self.cell0 = gtk.CellRendererPixbuf()
# add the cell to the tvcolumn and allow it to expand
self.tvcolumn.pack_start(self.cell0, True)
self.tvcolumn.pack_start(self.cell, True)
# set the cell "text" attribute to column 0 - retrieve text
# from that column in treestore
self.tvcolumn.set_cell_data_func(self.cell0, self.make_pixbuf)
self.tvcolumn.add_attribute(self.cell, 'text', 0)
return
python类CellRendererText()的实例源码
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 14
收藏 0
点赞 0
评论 0
def initLeftPane(self):
global groups
self.treeModel = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gtk.gdk.Pixbuf)
self.treeServers.set_model(self.treeModel)
self.treeServers.set_level_indentation(5)
#Force the alternating row colors, by default it's off with one column
self.treeServers.set_property('rules-hint', True)
gtk.rc_parse_string( """
style "custom-treestyle"{
GtkTreeView::allow-rules = 1
}
widget "*treeServers*" style "custom-treestyle"
""")
column = gtk.TreeViewColumn()
column.set_title('Servers')
self.treeServers.append_column( column )
renderer = gtk.CellRendererPixbuf()
column.pack_start(renderer, expand=False)
column.add_attribute(renderer, 'pixbuf', 2)
renderer = gtk.CellRendererText()
column.pack_start(renderer, expand=True)
column.add_attribute(renderer, 'text', 0)
self.treeServers.set_has_tooltip(True)
self.treeServers.connect('query-tooltip', self.on_treeServers_tooltip)
self.loadConfig()
self.updateTree()
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 26
收藏 0
点赞 0
评论 0
def new(self):
self.treeHosts = self.get_widget('treeHosts')
self.treeStore = gtk.TreeStore( gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_OBJECT )
for x in self.terms:
self.treeStore.append( None, (False, x[0], x[1]) )
self.treeHosts.set_model( self.treeStore )
crt = gtk.CellRendererToggle()
crt.set_property('activatable', True)
crt.connect('toggled', self.on_active_toggled)
col = gtk.TreeViewColumn(_("Activar"), crt, active=0)
self.treeHosts.append_column( col )
self.treeHosts.append_column(gtk.TreeViewColumn(_("Host"), gtk.CellRendererText(), text=1 ))
self.get_widget("txtCommands").history = []
#-- Wcluster.new }
#-- Wcluster custom methods {
# Write your own methods here
gnome_connection_manager.py 文件源码
项目:gnome-connection-manager
作者: mjun
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def __init__(self):
gtk.CellRendererText.__init__(self)
self._in_editor_menu = False
def _create_treeview(self, model):
cell_text = gtk.CellRendererText()
cell_icon = gtk.CellRendererPixbuf()
column = gtk.TreeViewColumn()
column.pack_start(cell_icon, False)
column.add_attribute(cell_icon, 'stock_id', 1)
column.pack_start(cell_text, True)
column.set_cell_data_func(cell_text, self.render_name_cell)
treeview = gtk.TreeView(model)
treeview.append_column(column)
treeview.set_headers_visible(False)
treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
treeview.connect('key_press_event', self.on_treeview_key_press)
return treeview
def __init__(self, parent, notebook):
Dialog.__init__(self, parent,
_('Pages By Number Of Links'), # T: dialog title
buttons=gtk.BUTTONS_CLOSE
)
self.notebook = notebook
self.direction_input = gtk.combo_box_new_text()
for dir in sorted(self.LABELS):
self.direction_input.append_text(self.LABELS[dir])
self.uistate.setdefault('link_direction', LINK_DIR_BACKWARD, self.LABELS.keys())
gtk_combobox_set_active_text(
self.direction_input,
self.LABELS[self.uistate['link_direction']]
)
self.direction_input.connect('changed', self.on_direction_input_changed)
hbox = gtk.HBox()
hbox.pack_start(gtk.Label(_('Trace Links')+':'), False)
hbox.add(self.direction_input)
self.vbox.pack_start(hbox, False)
self.listview = SingleClickTreeView(gtk.ListStore(int, str))
self.listview.set_reorderable(True)
for i, label in enumerate((_('#'), _('Page'))):
column = gtk.TreeViewColumn(label, gtk.CellRendererText(), text=i)
column.set_sort_column_id(i)
self.listview.append_column(column)
# TODO: self.listview.connect('row-activated', self.on_row_activated())
self.vbox.add(ScrolledWindow(self.listview))
self.populate_listview()
def _build_ui(self):
self._display = gtk.Table(20, 2)
self._store = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
self._tree = gtk.TreeView(self._store)
rend = gtk.CellRendererText()
tvc = gtk.TreeViewColumn('Element', rend, text=0)
self._tree.append_column(tvc)
self._tree.connect('button_press_event', self._tree_click)
self._tree.set_size_request(200, -1)
self.root = gtk.HBox(False, 3)
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
sw.add(self._tree)
sw.show()
self.root.pack_start(sw, 0, 0, 0)
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
sw.add_with_viewport(self._display)
sw.show()
self.root.pack_start(sw, 1, 1, 1)
self._tree.show()
self._display.show()
self.root.show()
def _make_view(self):
colnum = -1
for typ, cap in self.columns:
colnum += 1
if colnum == 0:
continue # Key column
if typ in [gobject.TYPE_STRING, gobject.TYPE_INT,
gobject.TYPE_FLOAT]:
rend = gtk.CellRendererText()
rend.set_property("ellipsize", pango.ELLIPSIZE_END)
column = gtk.TreeViewColumn(cap, rend, text=colnum)
elif typ in [gobject.TYPE_BOOLEAN]:
rend = gtk.CellRendererToggle()
rend.connect("toggled", self._toggle, colnum)
column = gtk.TreeViewColumn(cap, rend, active=colnum)
else:
raise Exception("Unsupported type %s" % typ)
column.set_sort_column_id(colnum)
self.__view.append_column(column)
self.__view.connect("button_press_event", self._mouse)
def make_view(self, columns):
self._view = gtk.TreeView(self._store)
for _type, _col in columns:
if _col.startswith("__"):
continue
index = columns.index((_type, _col))
if _type == gobject.TYPE_STRING or \
_type == gobject.TYPE_INT or \
_type == gobject.TYPE_FLOAT:
rend = gtk.CellRendererText()
column = gtk.TreeViewColumn(_col, rend, text=index)
column.set_resizable(True)
rend.set_property("ellipsize", pango.ELLIPSIZE_END)
elif _type == gobject.TYPE_BOOLEAN:
rend = gtk.CellRendererToggle()
rend.connect("toggled", self._toggle, index)
column = gtk.TreeViewColumn(_col, rend, active=index)
else:
raise Exception("Unknown column type (%i)" % index)
column.set_sort_column_id(index)
self._view.append_column(column)
self._view.connect("button_press_event", self.mouse_cb)
def __init__(self, visualizer, node_index):
InformationWindow.__init__(self)
self.win = gtk.Dialog(parent=visualizer.window,
flags=gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_NO_SEPARATOR,
buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
self.win.set_default_size(gtk.gdk.screen_width()/2, gtk.gdk.screen_height()/2)
self.win.connect("response", self._response_cb)
self.win.set_title("OLSR routing table for node %i" % node_index)
self.visualizer = visualizer
self.node_index = node_index
self.table_model = gtk.ListStore(str, str, str, int)
treeview = gtk.TreeView(self.table_model)
treeview.show()
sw = gtk.ScrolledWindow()
sw.set_properties(hscrollbar_policy=gtk.POLICY_AUTOMATIC,
vscrollbar_policy=gtk.POLICY_AUTOMATIC)
sw.show()
sw.add(treeview)
self.win.vbox.add(sw)
# Dest.
column = gtk.TreeViewColumn('Destination', gtk.CellRendererText(),
text=self.COLUMN_DESTINATION)
treeview.append_column(column)
# Next hop
column = gtk.TreeViewColumn('Next hop', gtk.CellRendererText(),
text=self.COLUMN_NEXT_HOP)
treeview.append_column(column)
# Interface
column = gtk.TreeViewColumn('Interface', gtk.CellRendererText(),
text=self.COLUMN_INTERFACE)
treeview.append_column(column)
# Num. Hops
column = gtk.TreeViewColumn('Num. Hops', gtk.CellRendererText(),
text=self.COLUMN_NUM_HOPS)
treeview.append_column(column)
self.visualizer.add_information_window(self)
self.win.show()
def __init__(self, visualizer, node_index):
InformationWindow.__init__(self)
self.win = gtk.Dialog(parent=visualizer.window,
flags=gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_NO_SEPARATOR,
buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
self.win.connect("response", self._response_cb)
self.win.set_title("IPv4 routing table for node %i" % node_index)
self.visualizer = visualizer
self.node_index = node_index
self.table_model = gtk.ListStore(str, str, str, str, int)
treeview = gtk.TreeView(self.table_model)
treeview.show()
sw = gtk.ScrolledWindow()
sw.set_properties(hscrollbar_policy=gtk.POLICY_AUTOMATIC,
vscrollbar_policy=gtk.POLICY_AUTOMATIC)
sw.show()
sw.add(treeview)
self.win.vbox.add(sw)
self.win.set_default_size(600, 300)
# Dest.
column = gtk.TreeViewColumn('Destination', gtk.CellRendererText(),
text=self.COLUMN_DESTINATION)
treeview.append_column(column)
# Next hop
column = gtk.TreeViewColumn('Next hop', gtk.CellRendererText(),
text=self.COLUMN_NEXT_HOP)
treeview.append_column(column)
# Interface
column = gtk.TreeViewColumn('Interface', gtk.CellRendererText(),
text=self.COLUMN_INTERFACE)
treeview.append_column(column)
# Type
column = gtk.TreeViewColumn('Type', gtk.CellRendererText(),
text=self.COLUMN_TYPE)
treeview.append_column(column)
# Prio
column = gtk.TreeViewColumn('Prio', gtk.CellRendererText(),
text=self.COLUMN_PRIO)
treeview.append_column(column)
self.visualizer.add_information_window(self)
self.win.show()
def _PageTreeView_init_(self, ui):
'''
This is a slightly modified copy of PageTreeView constructor
with one additional column for icons.
'''
BrowserTreeView.__init__(self)
self.set_name('zim-pageindex')
self.ui = ui
self._cleanup = None # temporary created path that needs to be removed later
column = gtk.TreeViewColumn('_pages_')
self.append_column(column)
# Added Icon column.
cr0 = gtk.CellRendererPixbuf()
column.pack_start(cr0, expand = False)
column.set_attributes(cr0, pixbuf = ICON_COL)
cr1 = gtk.CellRendererText()
cr1.set_property('ellipsize', pango.ELLIPSIZE_END)
column.pack_start(cr1, True)
column.set_attributes(cr1, text=NAME_COL,
style=STYLE_COL, foreground=FGCOLOR_COL, weight=WEIGHT_COL)
cr2 = self.get_cell_renderer_number_of_items()
column.pack_start(cr2, False)
column.set_attributes(cr2, text=N_CHILD_COL, weight=WEIGHT_COL)
if gtk.gtk_version >= (2, 12) \
and gtk.pygtk_version >= (2, 12):
self.set_tooltip_column(TIP_COL)
self.set_headers_visible(False)
self.set_enable_search(True)
self.set_search_column(0)
self.enable_model_drag_source(
gtk.gdk.BUTTON1_MASK, (INTERNAL_PAGELIST_TARGET,),
gtk.gdk.ACTION_LINK | gtk.gdk.ACTION_MOVE )
self.enable_model_drag_dest(
(INTERNAL_PAGELIST_TARGET,),
gtk.gdk.ACTION_MOVE )
def setup_gui_preferences(self):
self.player_path = gtk.Entry()
self.player_params = gtk.Entry()
self.player_ao_model = gtk.ListStore(str)
self.player_ao = gtk.ComboBox(self.player_ao_model)
cell = gtk.CellRendererText()
self.player_ao.pack_start(cell, True)
self.player_ao.add_attribute(cell, "text", 0)
for t in ("esd", "gst"):
self.player_ao_model.append((t,))
self.player_acodec_model = gtk.ListStore(str)
self.player_acodec = gtk.ComboBox(self.player_acodec_model)
cell = gtk.CellRendererText()
self.player_acodec.pack_start(cell, True)
self.player_acodec.add_attribute(cell, "text", 0)
for t in ("ffmpeg", "dspmp3"):
self.player_acodec_model.append((t,))
hbox = gtk.HBox(homogeneous=False, spacing=2)
btn = gtk.Button(stock=gtk.STOCK_OPEN)
hbox.pack_start(self.player_path, fill=True, expand=True)
hbox.pack_start(btn, fill=True, expand=False)
btn.connect("clicked", self._choose_mplayer_path)
hbox.show_all()
wids = ("MPlayer",
("Path:", hbox),
("Parameters:", self.player_params),
("Audio Output:", self.player_ao),
("Audio Codec:", self.player_acodec),
)
self.gui_preferences = wids
# setup_gui_preferences()
def create_treeview(self):
self.treeview = gtk.TreeView(self.treestore)
self.treeview.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_VERTICAL)
self.builder.get_object("feat_scrolledwindow").add(self.treeview)
self.treeview.add_events(gdk.BUTTON_PRESS_MASK)
self.treeview.connect('button-press-event', self.pop_menu)
self.treeview.connect('row_activated', self.tv_row_activated)
self.treeview.connect('key_press_event', self.tv_key_pressed_event)
# icon and name
col = gtk.TreeViewColumn(_("Name"))
cell = gtk.CellRendererPixbuf()
cell.set_fixed_size(treeview_icon_size, treeview_icon_size)
self.tv1_icon_cell = cell
col.pack_start(cell, expand = False)
col.set_cell_data_func(cell, self.get_col_icon)
col.set_min_width(int(self.col_width_adj.get_value()))
self.name_cell = gtk.CellRendererText()
col.pack_start(self.name_cell, expand = True)
col.set_cell_data_func(self.name_cell, self.get_col_name)
col.set_resizable(True)
self.name_cell.set_property('ellipsize', self.pref.name_ellipsis)
self.name_cell.set_property('xpad', 2)
self.treeview.append_column(col)
# value
col = gtk.TreeViewColumn(_("Value"))
cell = CellRendererMx(self.treeview)
cell.edited = self.edited
cell.set_preediting(self.get_editinfo)
cell.set_refresh_fn(self.get_selected_feature)
col.pack_start(cell, expand = True)
col.set_cell_data_func(cell, self.get_col_value)
col.set_min_width(200)
col.set_resizable(True)
self.treeview.append_column(col)
self.treeview.set_tooltip_column(1)
self.treeview.connect("cursor-changed", self.get_selected_feature)
self.treeview.set_model(self.master_filter)
def create_second_treeview(self):
self.treeview2 = gtk.TreeView()
self.treeview2.add_events(gdk.BUTTON_PRESS_MASK)
self.treeview2.connect('button-press-event', self.pop_menu)
self.treeview2.connect('cursor-changed', self.tv2_selected)
self.treeview2.connect('row_activated', self.tv_row_activated)
self.treeview2.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_VERTICAL)
self.treeview2.set_show_expanders(self.pref.tv2_expandable)
if self.pref.tv2_expandable :
self.treeview2.set_level_indentation(-5)
else :
self.treeview2.set_level_indentation(12)
# icon and name
col = gtk.TreeViewColumn(_("Name"))
cell = gtk.CellRendererPixbuf()
cell.set_fixed_size(treeview_icon_size, treeview_icon_size)
self.tv2_icon_cell = cell
col.pack_start(cell, expand = False)
col.set_cell_data_func(cell, self.get_col_icon)
self.name_cell2 = gtk.CellRendererText()
self.name_cell2.set_property('xpad', 2)
self.name_cell2.set_property('ellipsize', self.pref.name_ellipsis)
col.pack_start(self.name_cell2, expand = True)
col.set_cell_data_func(self.name_cell2, self.get_col_name)
col.set_resizable(True)
col.set_min_width(int(self.col_width_adj.get_value()))
self.treeview2.append_column(col)
# value
col = gtk.TreeViewColumn(_("Value"))
cell = CellRendererMx(self.treeview2)
cell.set_property("editable", True)
cell.edited = self.edited
cell.set_preediting(self.get_editinfo)
cell.set_refresh_fn(self.get_selected_feature)
col.pack_start(cell, expand = False)
col.set_cell_data_func(cell, self.get_col_value)
col.set_resizable(True)
col.set_min_width(200)
self.treeview2.append_column(col)
self.treeview2.set_tooltip_column(1)
self.treeview2.set_model(self.treestore)
self.treeview2.set_model(self.details_filter)
self.params_scroll.add(self.treeview2)
self.treeview2.connect('key-press-event', self.tv_key_pressed_event)
def setup_iconview(self, columns, column_types, container, changed_cb=None, activate_cb=None, text_style='text'):
""" Create a ready-to-use (list based) iconview widget (GTK+2.6 and baove)
Parameters:
columns : List of column names (should only be two - one for icon & one for description)
column_types : List of variable types for each column
(eg. [gobject.TYPE_STRING, gobject.TYPE_LONG])
container : reference to widget that is to contain list,
almost always a scrolled window - gtk.ScrolledWindow()
changed_cb : the callback function for the "changed" TreeViewSelection signal
activate_cb : the callback function for the "changed" TreeViewSelection signal
text_style : 'text' for normail plain text,
'markup' for pango marked-up text
Returns:
Reference to IconView and ListStore widgets
e.g. to create a four column (first two displayed, rest hidden) icon view...
self.tvwProjects, self.lsProjects, self.tvwsProjects = self.setup_treeview(
['Picture', 'Desc'],
[gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_LONG, gobject.TYPE_STRING],
self.scwPictures,
self.on_tvwsPictures_changed,
None
'text')
"""
#create the ListStore and IconView objects
ls = gtk.ListStore(*column_types)
ivw = gtk.IconView(ls)
#set columns
for i in range(len(columns)):
if column_types[i] != gtk.gdk.Pixbuf:
#create text renderer
tvwRendererText = gtk.CellRendererText()
tvwRendererText.set_property('yalign', 0.0)
if text_style == 'markup':
#markup text rendering
column = gtk.TreeViewColumn(columns[i], tvwRendererText, markup=i)
ivw.set_markup_column(i)
else:
#default text rendering
column = gtk.TreeViewColumn(columns[i], tvwRendererText, text=i)
ivw.set_text_column(i)
else:
#create pixbuf renderer
tvwRendererPixbuf = gtk.CellRendererPixbuf()
column = gtk.TreeViewColumn(columns[i], tvwRendererPixbuf, pixbuf=i)
ivw.set_pixbuf_column(i)
#display it (add iconview to given widget)
container.add(ivw)
ivw.show()
#connect callbacks
if changed_cb:
ivw.connect('selection_changed', changed_cb)
if activate_cb:
ivw.connect('item_activated', activate_cb)
#done
return ivw, ls
def make_view(self):
editable = [self.col_nloc, self.col_name, self.col_comm]
self.__store = gtk.ListStore(gobject.TYPE_BOOLEAN, # Import
gobject.TYPE_INT, # Source loc
gobject.TYPE_INT, # Destination loc
gobject.TYPE_STRING, # Name
gobject.TYPE_STRING, # Frequency
gobject.TYPE_STRING, # Comment
gobject.TYPE_BOOLEAN,
gobject.TYPE_STRING)
self.__view = gtk.TreeView(self.__store)
self.__view.show()
tips = gtk.Tooltips()
for k in self.caps.keys():
t = self.types[k]
if t == gobject.TYPE_BOOLEAN:
rend = gtk.CellRendererToggle()
rend.connect("toggled", self._toggle, k)
column = gtk.TreeViewColumn(self.caps[k], rend,
active=k,
sensitive=self.col_okay,
activatable=self.col_okay)
else:
rend = gtk.CellRendererText()
if k in editable:
rend.set_property("editable", True)
rend.connect("edited", self._edited, k)
column = gtk.TreeViewColumn(self.caps[k], rend,
text=k,
sensitive=self.col_okay)
if k == self.col_nloc:
column.set_cell_data_func(rend, self._render, k)
if k in self.tips.keys():
LOG.debug("Doing %s" % k)
lab = gtk.Label(self.caps[k])
column.set_widget(lab)
tips.set_tip(lab, self.tips[k])
lab.show()
column.set_sort_column_id(k)
self.__view.append_column(column)
self.__view.set_tooltip_column(self.col_tmsg)
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
sw.add(self.__view)
sw.show()
return sw