def add_treeview(self):
num_columns = [float for x in range(len(self.data.columns))]
liststore = Gtk.ListStore(*num_columns)
for ref in self.data.values.tolist():
liststore.append(ref)
treeview = Gtk.TreeView.new_with_model(liststore)
for i, column_title in enumerate(self.data.columns):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(column_title, renderer, text=i)
treeview.append_column(column)
self.scrollable_treelist = Gtk.ScrolledWindow()
self.scrollable_treelist.add(treeview)
self.scrollable_treelist.set_vexpand(True)
self.scrollable_treelist.set_hexpand(True)
self.verticalbox.pack_start(self.scrollable_treelist, True, True, 0)
self.verticalbox.show_all()
python类TreeViewColumn()的实例源码
def __init__(self, window):
Gtk.ScrolledWindow.__init__(self)
# Parent window
self._window = window
# Tree view
self._tree_view = Gtk.TreeView(Gtk.ListStore(int, int, str, str))
self._tree_view.set_headers_visible(False)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Message", renderer, text=2, background=3)
self._tree_view.append_column(column)
self._tree_view.connect("row-activated", self.on_row_activated)
self.add(self._tree_view)
self.show_all()
def create_relocs_columns(self):
rendererPix = Gtk.CellRendererPixbuf()
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Name")
column.set_spacing(5)
column.pack_start(rendererPix, False)
column.pack_start(rendererText, True)
column.set_attributes(rendererText, text=1)
column.set_attributes(rendererPix, pixbuf=0)
column.set_sort_column_id(0)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Virtual Address", rendererText, text=2)
self.store.set_sort_column_id(2,Gtk.SortType.ASCENDING)
column.set_sort_column_id(2)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Size", rendererText, text=3)
column.set_sort_column_id(3)
self.append_column(column)
def create_exports_columns(self):
rendererPix = Gtk.CellRendererPixbuf()
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Offset")
column.set_spacing(5)
column.pack_start(rendererPix, False)
column.pack_start(rendererText, True)
column.set_attributes(rendererText, text=1)
column.set_attributes(rendererPix, pixbuf=0)
self.store.set_sort_column_id(1,Gtk.SortType.ASCENDING)
column.set_sort_column_id(1)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Name", rendererText, text=2)
column.set_sort_column_id(2)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Ordinal", rendererText, text=3)
column.set_sort_column_id(3)
self.append_column(column)
self.set_model(self.store)
def create_tree(self, imps):
# Create the column
imports = Gtk.TreeViewColumn()
imports.set_title("Imports")
imports.set_spacing(5)
self.treestore = Gtk.TreeStore(GdkPixbuf.Pixbuf, str)
rendererPix = Gtk.CellRendererPixbuf()
rendererText = Gtk.CellRendererText()
imports.pack_start(rendererPix, False)
imports.pack_start(rendererText, True)
imports.set_attributes(rendererText, text=1)
imports.set_attributes(rendererPix, pixbuf=0)
# Iterate imports and add to the tree
for element in imps.keys():
it = self.treestore.append(None, [self.fcn_pix, element])
for imp in imps[element]:
self.treestore.append(it, [self.imp_pix, imp[0] + '\t' + imp[1]])
# Add column to tree
self.append_column(imports)
self.set_model(self.treestore)
self.expand_all()
def create_strings_columns(self):
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Address", rendererText, text=0)
column.set_sort_column_id(0)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Size", rendererText, text=1)
#self.store.set_sort_column_id(2,Gtk.SortType.ASCENDING)
column.set_sort_column_id(1)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("String", rendererText, text=2)
column.set_sort_column_id(2)
self.append_column(column)
def __create_gui(self):
"""
Create and display the GUI components of the gramplet.
"""
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.model = Gtk.ListStore(object, str, int)
view = Gtk.TreeView(self.model)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(_("Person"), renderer, text=1)
view.append_column(column)
renderer = Gtk.CellRendererText()
renderer.set_property('editable', True)
renderer.connect('edited', self.__cell_edited)
column = Gtk.TreeViewColumn(_("ID"), renderer, text=2)
view.append_column(column)
vbox.pack_start(view, expand=True, fill=True, padding=0)
return vbox
def __init__(self, choices, change_handler=None):
self.model = gtk.ListStore(GObject.TYPE_STRING)
self._values = []
for label, value in choices:
self.model.append((label,))
self._values.append(value)
renderer = gtk.CellRendererText()
self.control = gtk.ScrolledWindow()
self.control.show()
self._treeview = gtk.TreeView(self.model)
self._treeview.show()
self.control.add(self._treeview)
self.control.set_shadow_type(gtk.ShadowType.ETCHED_OUT)
self.control.set_policy(gtk.PolicyType.AUTOMATIC, gtk.PolicyType.AUTOMATIC)
# Sadly there seems to be no way to adjust the size of the ScrolledWindow to its content.
# The default size of the ScrolledWindow is too small (making it hard to select the model).
self.control.set_size_request(200, -1)
column = gtk.TreeViewColumn()
column.pack_start(renderer, expand=False)
column.set_attributes(renderer, text=0)
self._treeview.append_column(column)
self._treeview.set_headers_visible(False)
self._selection = self._treeview.get_selection()
self._selection.set_mode(gtk.SelectionMode.MULTIPLE)
self.connect("changed", change_handler, self._selection)
def create_window(self):
self.dialog = Gtk.Dialog(None, None, Gtk.DialogFlags.MODAL)
self.dialog.set_decorated(False)
#
scrolledwindow = Gtk.ScrolledWindow()
scrolledwindow.set_can_focus(False)
scrolledwindow.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
scrolledwindow.set_shadow_type(Gtk.ShadowType.ETCHED_OUT)
self.dialog.vbox.pack_start(scrolledwindow, Gtk.AttachOptions.SHRINK, Gtk.AttachOptions.SHRINK,0)
#
self.store = Gtk.ListStore(str)
for value in self.values:
self.store.append([value])
self.tree = Gtk.TreeView(self.store)
self.tree.set_headers_visible(False)
self.tree.set_can_focus(False)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(title=None,cell_renderer=renderer, text=0)
self.tree.append_column(column)
#
scrolledwindow.add(self.tree)
self.tree.connect('focus-out-event',self.on_focus_out)
self.dialog.connect('focus-out-event',self.on_focus_out)
self.tree.connect('cursor-changed',self.on_cursor_changed)
self.dialog.show_all()
def __init__(self):
Gtk.ScrolledWindow.__init__(self)
self.list = Gtk.ListStore(str, bool)
self.view = Gtk.TreeView(self.list)
self.view.set_hexpand(True)
text_renderer = Gtk.CellRendererText()
check_renderer = Gtk.CellRendererToggle()
name_column = Gtk.TreeViewColumn('Gtk color list', text_renderer, text=0)
check_column = Gtk.TreeViewColumn('', check_renderer, active=1)
self.view.append_column(check_column)
self.view.append_column(name_column)
self.view.connect('row-activated', self.row_activated)
self.add(self.view)
names = ['active_text_color', 'inactive_text_color',
'active_text_shadow_color', 'inactive_text_shadow_color',
'active_border_color', 'inactive_border_color',
'active_color_1', 'active_color_2', 'active_highlight_1',
'active_highlight_2', 'active_mid_1', 'active_mid_2',
'active_shadow_1', 'active_shadow_2', 'inactive_color_1',
'inactive_color_2', 'inactive_highlight_1',
'inactive_highlight_2', 'inactive_mid_1', 'inactive_mid_2',
'inactive_shadow_1', 'inactive_shadow_2']
for name in names:
self.list.append([name, False])
def __init__(self):
super(CellRendererFadeWindow, self).__init__(title="CellRendererFade Example")
self.set_default_size(200, 200)
self.liststore = Gtk.ListStore(str, str)
self.liststore.append(["New", Gtk.STOCK_NEW])
self.liststore.append(["Open", Gtk.STOCK_OPEN])
self.liststore.append(["Save", Gtk.STOCK_SAVE])
treeview = Gtk.TreeView(model=self.liststore)
renderer_text = Gtk.CellRendererText()
column_text = Gtk.TreeViewColumn("Text", renderer_text, text=0)
treeview.append_column(column_text)
renderer_pixbuf = CellRenderFade(param=0.001)
column_pixbuf = Gtk.TreeViewColumn("Image", renderer_pixbuf, stock_id=1)
treeview.append_column(column_pixbuf)
self.add(treeview)
def get_treeview_column(name, renderer, m_col, m_col_sort=None, resizable=False):
"""
A function used to generate a generic treeview column.
:param str name: The name of the column.
:param renderer: The Gtk renderer to be used for the column.
:param m_col: The column position in the model.
:param m_col_sort: The column to sort column data by.
:param bool resizable: Decide whether the column should be resizable.
:return: A TreeViewColumn Object with the desired setttings.
"""
tv_col = Gtk.TreeViewColumn(name)
tv_col.pack_start(renderer, True)
tv_col.add_attribute(renderer, 'text', m_col)
tv_col.set_property('resizable', resizable)
if m_col_sort is not None:
tv_col.set_sort_column_id(m_col_sort)
return tv_col
def __init__(self, icons):
super(OneConfViews, self).__init__()
model = Gtk.ListStore(GdkPixbuf.Pixbuf, GObject.TYPE_STRING,
GObject.TYPE_STRING)
model.set_sort_column_id(self.COL_HOSTNAME, Gtk.SortType.ASCENDING)
model.set_sort_func(self.COL_HOSTNAME, self._sort_hosts)
self.set_model(model)
self.set_headers_visible(False)
self.col = Gtk.TreeViewColumn('hostname')
hosticon_renderer = Gtk.CellRendererPixbuf()
hostname_renderer = Gtk.CellRendererText()
self.col.pack_start(hosticon_renderer, False)
self.col.add_attribute(hosticon_renderer, 'pixbuf', self.COL_ICON)
self.col.pack_start(hostname_renderer, True)
self.col.add_attribute(hostname_renderer, 'text', self.COL_HOSTNAME)
self.append_column(self.col)
self.current_hostid = None
self.hostids = []
# TODO: load the dynamic one (if present), later
self.default_computer_icon = icons.load_icon("computer", 22, 0)
self.connect("cursor-changed", self.on_cursor_changed)
def setup_download_queue(self):
""" Setup the download queue"""
renderer = Gtk.CellRendererText()
name = Gtk.TreeViewColumn("Name",renderer,text=0)
status = Gtk.TreeViewColumn("Status",renderer,text=0)
progress = Gtk.TreeViewColumn("Progress",renderer,text=0)
self.download_queue.append_column(name)
self.download_queue.append_column(status)
self.download_queue.append_column(progress)
def build_columns(self, treeview, **kwargs):
"""Build columns for Gtk treeview"""
for i, item in enumerate(self.data):
column = Gtk.TreeViewColumn(
item.get("title"),
item.get("render", Gtk.CellRendererText(ellipsize=Pango.EllipsizeMode.END)),
**{item.get("attr", "text"): i}
)
column.set_visible(item.get("visible", True))
for k, v in kwargs.items():
column.set_property(k, v)
treeview.append_column(column)
def __init__(self):
Gtk.Window.__init__(self, title='My Window Title')
self.connect('delete-event', Gtk.main_quit)
store = Gtk.ListStore(str, str, str, str)
self.populate_store(store)
self.treeview = Gtk.TreeView(model=store)
renderer = Gtk.CellRendererText()
column_catalog = Gtk.TreeViewColumn('Catalog Name', renderer, text=0)
column_catalog.set_sort_column_id(0)
self.treeview.append_column(column_catalog)
column_dbname = Gtk.TreeViewColumn('Database Name', renderer, text=1)
column_dbname.set_sort_column_id(1)
self.treeview.append_column(column_dbname)
column_charset = Gtk.TreeViewColumn('Character Set', renderer, text=2)
column_charset.set_sort_column_id(2)
self.treeview.append_column(column_charset)
column_collation = Gtk.TreeViewColumn('Collation', renderer, text=3)
column_collation.set_sort_column_id(3)
self.treeview.append_column(column_collation)
scrolled_window = Gtk.ScrolledWindow()
scrolled_window.set_policy(
Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled_window.add(self.treeview)
scrolled_window.set_min_content_height(200)
self.add(scrolled_window)
self.show_all()
# Add data to ListStore
def __init__(self):
glade_dir = gv.jcchess.get_glade_dir()
self.glade_file = os.path.join(glade_dir, "gamelist.glade")
# create gamelist window
self.builder = Gtk.Builder()
self.builder.set_translation_domain(gv.domain)
self.builder.add_from_file(self.glade_file)
self.builder.connect_signals(self)
self.window = self.builder.get_object("gamelist_window")
self.treeview = self.builder.get_object("gamelist_treeview")
self.liststore = self.builder.get_object("liststore1")
cell0 = Gtk.CellRendererText()
# cell0.set_property("cell-background", Gdk.color_parse("#F8F8FF"))
tvcolumn0 = Gtk.TreeViewColumn()
self.treeview.append_column(tvcolumn0)
tvcolumn0.pack_start(cell0, True)
tvcolumn0.set_min_width(50)
tvcolumn0.set_attributes(cell0, text=0)
self.treeview.connect("row_activated", self.entry_clicked)
self.tree_selection = self.treeview.get_selection()
self.window.hide()
# user has closed the window
# just hide it
def __init__(self):
Gtk.Frame.__init__(self)
self.sbrick = None
self.set_label("SBrick Information")
self.store = Gtk.ListStore(str, str)
self.iterSBrickID = self.store.append(["SBrick BlueGiga ID", "--"])
self.iterHardwareVersion = self.store.append(["Hardware Version", "--"])
self.iterSoftwareVersion = self.store.append(["Software Version", "--"])
self.iterNeedAuthentication = self.store.append(["Need Authentication", "--"])
self.iterIsAuthenticated = self.store.append(["Is Authenticated", "--"])
self.iterAuthenticationTimeout = self.store.append(["Authentication Timeout", "--"])
self.iterInputVoltage = self.store.append(["Input Voltage", "--"])
self.iterTemperature = self.store.append(["Temperature", "--"])
self.iterPowerCycles = self.store.append(["Power Cycles", "--"])
self.iterWatchdogTimeout = self.store.append(["Watchdog Timeout", "--"])
self.iterUpTime = self.store.append(["Up Time", "--"])
self.iterThermalLimit = self.store.append(["Thermal Limit", "--"])
self.listView = Gtk.TreeView(self.store)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Item", renderer, text=0)
self.listView.append_column(column)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Value", renderer, text=1)
self.listView.append_column(column)
self.scrollTree = Gtk.ScrolledWindow()
self.scrollTree.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self.scrollTree.add_with_viewport(self.listView)
self.scrollTree.set_min_content_height(100)
self.add(self.scrollTree)
self.set_sensitive(False)
def __init__(self, model, dep_type, label):
Gtk.TreeView.__init__(self)
self.current = None
self.dep_type = dep_type
self.filter_model = model.filter_new()
self.filter_model.set_visible_func(self._filter, data=None)
self.set_model(self.filter_model)
self.append_column(Gtk.TreeViewColumn(label, Gtk.CellRendererText(), text=COL_DEP_PACKAGE))
def __init__(self, model, label):
Gtk.TreeView.__init__(self)
self.current = None
self.filter_model = model.filter_new()
self.filter_model.set_visible_func(self._filter)
self.set_model(self.filter_model)
self.append_column(Gtk.TreeViewColumn(label, Gtk.CellRendererText(), text=COL_DEP_PARENT))
def __init__(self, builder):
GObject.GObject.__init__(self)
self._services = Gtk.ListStore(str, str, int)
self._profile = None
# Widgets
self._panel = builder.get_object('server-panel')
self._toolbar = builder.get_object('server-toolbar')
# Zeroconf
self._zeroconf_list = builder.get_object('server-zeroconf-list')
self._zeroconf_list.set_model(self._services)
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Zeroconf", renderer, text=0)
self._zeroconf_list.append_column(column)
# Host
self._host_entry = builder.get_object('server-host')
# Port
self._port_spinner = builder.get_object('server-port')
# Passwort
self._password_entry = builder.get_object('server-password')
# Image directory
self._image_dir_entry = builder.get_object('server-image-dir')
# Zeroconf provider
self._zeroconf_provider = ZeroconfProvider()
self._zeroconf_provider.connect_signal(ZeroconfProvider.SIGNAL_SERVICE_NEW, self.on_new_service)
def create_functions_columns(self):
rendererText = Gtk.CellRendererText()
rendererText.tooltip_handle = self.connect('motion-notify-event', self.fcn_tooltip)
rendererPix = Gtk.CellRendererPixbuf()
column = Gtk.TreeViewColumn("Function")
column.set_spacing(5)
column.pack_start(rendererPix, False)
column.pack_start(rendererText, True)
column.set_attributes(rendererText, text=1)
column.set_attributes(rendererPix, pixbuf=0)
column.set_sort_column_id(1)
self.store.set_sort_column_id(1,Gtk.SortType.ASCENDING)
self.append_column(column)
self.set_model(self.store)
def create_sections_columns(self):
rendererPix = Gtk.CellRendererPixbuf()
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Name")
column.set_spacing(5)
column.pack_start(rendererPix, False)
column.pack_start(rendererText, True)
column.set_attributes(rendererText, text=1)
column.set_attributes(rendererPix, pixbuf=0)
column.set_sort_column_id(0)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Virtual Address", rendererText, text=2)
self.store.set_sort_column_id(2,Gtk.SortType.ASCENDING)
column.set_sort_column_id(2)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Virtual Size", rendererText, text=3)
column.set_sort_column_id(3)
self.append_column(column)
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Raw Size", rendererText, text=4)
column.set_sort_column_id(4)
self.append_column(column)
self.set_model(self.store)
def create_classes_columns(self):
rendererText = Gtk.CellRendererText()
column = Gtk.TreeViewColumn("Name", rendererText, text=0)
column.set_sort_column_id(0)
self.append_column(column)
def on_row_activated( # pylint: disable=no-self-use
self, treeview, treepath, column):
'''Signal handler for activating a row in the browsing treeview
:param treeview: The browsing treeview
:type treeview: Gtk.TreeView object
:param treepath: The path of the activated row in the browsing treeview
:type treepath: Gtk.TreePath object
:param column: The column of the activated row in the browsing treeview
:type column: Gtk.TreeViewColumn object
'''
if _ARGS.debug:
sys.stdout.write(
'on_row_activated() %s %s %s\n'
%(repr(treeview), repr(treepath), repr(column)))
def setColumns(Treeview, Title, MWIDTH,align):
for i, column_title in enumerate(Title):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(column_title, renderer, text=i)
column.set_sort_column_id(i)
column.set_alignment(align)
column.add_attribute(renderer, "background", len(Title))
column.set_property("min-width", MWIDTH)
Treeview.set_property("can-focus",False)
Treeview.append_column(column)
# adding Scrollbar to the Treeview
def setColumnFrameBuffer(TreeFB,Title):
for i, column_title in enumerate(Title):
FBrenderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(column_title, FBrenderer, text=i)
column.add_attribute(FBrenderer, "background", 25)
if i < len(Title) - 1:
FBrenderer.set_alignment(0.5, 0.5)
column.set_alignment(0.5)
column.set_property("min-width", 40)
TreeFB.set_property("can-focus", False)
TreeFB.append_column(column)
def setOclColumns(Treeview,Title):
for i, column_title in enumerate(Title):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(column_title, renderer, text=i)
column.add_attribute(renderer, "background", len(Title))
if i == 1:
column.add_attribute(renderer, "foreground", len(Title) + 1)
column.set_property("min-width", Const.MWIDTH)
Treeview.set_property("can-focus", False)
Treeview.append_column(column)
def __init__(self):
builder = Gtk.Builder()
builder.add_from_file("layout.glade")
builder.connect_signals(self)
window = builder.get_object("BrowserWindow")
window.set_default_size(900, 675)
self.url_bar = builder.get_object("UrlBar")
self.refresh_button = builder.get_object("Refresh")
self.history_forward = builder.get_object("HistoryForward")
self.history_backward = builder.get_object("HistoryBackward")
# create popup menu for browser tabs
self.tab_menu = TabContextMenu(self)
self.uni_menu = UniverseContextMenu(self)
# tabs tracks the open BrowserTab objects
self.tabs = {}
self.focused = None
self.tab_store = builder.get_object("TabTreeStore")
self.tab_tree_view = builder.get_object("TabTreeView")
self.tab_tree_view.set_activate_on_single_click(True)
# stores a list of tab ID's, in order of call
self.focus_history = []
# setup the treeview's renderer
renderer = Gtk.CellRendererText()
renderer.set_property("ellipsize", 3)
self.title_column = Gtk.TreeViewColumn("Tab Title", renderer, text=0)
self.tab_tree_view.append_column(self.title_column)
self.tab_tree_view.connect("row_activated", self.tree_activates_tab)
# self.views tracks all of the sockets
self.views = builder.get_object("ViewPorts")
window.show_all()
# create a new tab
self.new_tab("http://duckduckgo.com")
def __init__(self):
Gtk.TreeView.__init__(self)
self.task_store = Gtk.TreeStore(str, str)
self.set_model(self.task_store)
column = Gtk.TreeViewColumn(_('Tasks'), Gtk.CellRendererText(), text=0)
self.append_column(column)
self.connect('notify::tasks', self.tasks_changed)