本文整理汇总了Python中quodlibet.qltk.x.Button.set_sensitive方法的典型用法代码示例。如果您正苦于以下问题:Python Button.set_sensitive方法的具体用法?Python Button.set_sensitive怎么用?Python Button.set_sensitive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类quodlibet.qltk.x.Button
的用法示例。
在下文中一共展示了Button.set_sensitive方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
def __init__(self, parent, library):
super(EditTags, self).__init__(spacing=12)
self.title = _("Edit Tags")
self.set_border_width(12)
model = ObjectStore()
view = RCMHintedTreeView(model=model)
self._view = view
selection = view.get_selection()
render = Gtk.CellRendererPixbuf()
column = TreeViewColumn()
column.pack_start(render, True)
column.set_fixed_width(24)
column.set_expand(False)
def cdf_write(col, rend, model, iter_, *args):
entry = model.get_value(iter_)
rend.set_property('sensitive', entry.edited or entry.deleted)
if entry.canedit or entry.deleted:
if entry.deleted:
rend.set_property('icon-name', Icons.EDIT_DELETE)
else:
rend.set_property('icon-name', Icons.EDIT)
else:
rend.set_property('icon-name', Icons.CHANGES_PREVENT)
column.set_cell_data_func(render, cdf_write)
view.append_column(column)
render = Gtk.CellRendererText()
column = TreeViewColumn(title=_('Tag'))
column.pack_start(render, True)
def cell_data_tag(column, cell, model, iter_, data):
entry = model.get_value(iter_)
cell.set_property("text", entry.tag)
cell.set_property("strikethrough", entry.deleted)
column.set_cell_data_func(render, cell_data_tag)
column.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
render.set_property('editable', True)
render.connect('edited', self.__edit_tag_name, model)
render.connect(
'editing-started', self.__tag_editing_started, model, library)
view.append_column(column)
render = Gtk.CellRendererText()
render.set_property('ellipsize', Pango.EllipsizeMode.END)
render.set_property('editable', True)
render.connect('edited', self.__edit_tag, model)
render.connect(
'editing-started', self.__value_editing_started, model, library)
column = TreeViewColumn(title=_('Value'))
column.pack_start(render, True)
def cell_data_value(column, cell, model, iter_, data):
entry = model.get_value(iter_)
markup = entry.value.get_markup()
cell.markup = markup
cell.set_property("markup", markup)
cell.set_property("editable", entry.canedit)
cell.set_property("strikethrough", entry.deleted)
column.set_cell_data_func(render, cell_data_value)
column.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
view.append_column(column)
sw = Gtk.ScrolledWindow()
sw.set_shadow_type(Gtk.ShadowType.IN)
sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
sw.add(view)
self.pack_start(sw, True, True, 0)
cb = ConfigCheckButton(
_("Show _programmatic tags"), 'editing', 'alltags', populate=True,
tooltip=_("Access all tags, including machine-generated "
"ones e.g. MusicBrainz or Replay Gain tags"))
cb.connect('toggled', self.__all_tags_toggled)
self.pack_start(cb, False, True, 0)
# Add and Remove [tags] buttons
buttonbox = Gtk.HBox(spacing=18)
bbox1 = Gtk.HButtonBox()
bbox1.set_spacing(6)
bbox1.set_layout(Gtk.ButtonBoxStyle.START)
add = qltk.Button(_("_Add"), Icons.LIST_ADD)
add.set_focus_on_click(False)
self._add = add
add.connect('clicked', self.__add_tag, model, library)
bbox1.pack_start(add, True, True, 0)
# Remove button
remove = qltk.Button(_("_Remove"), Icons.LIST_REMOVE)
remove.set_focus_on_click(False)
remove.connect('clicked', self.__remove_tag, view)
remove.set_sensitive(False)
self._remove = remove
bbox1.pack_start(remove, True, True, 0)
#.........这里部分代码省略.........
示例2: TagListEditor
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
class TagListEditor(qltk.Window):
"""Dialog to edit a list of tag names."""
_WIDTH = 600
_HEIGHT = 300
def __init__(self, title, values=None):
super(TagListEditor, self).__init__()
self.use_header_bar()
self.data = values or []
self.set_border_width(12)
self.set_title(title)
self.set_default_size(self._WIDTH, self._HEIGHT)
vbox = Gtk.VBox(spacing=12)
hbox = Gtk.HBox(spacing=12)
# Set up the model for this widget
self.model = Gtk.ListStore(str)
self.__fill_values()
# Main view
view = self.view = HintedTreeView(model=self.model)
view.set_fixed_height_mode(True)
view.set_headers_visible(False)
sw = Gtk.ScrolledWindow()
sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
sw.set_shadow_type(Gtk.ShadowType.IN)
sw.add(view)
sw.set_size_request(-1, max(sw.size_request().height, 100))
hbox.pack_start(sw, True, True, 0)
self.__setup_column(view)
# Context menu
menu = Gtk.Menu()
remove_item = MenuItem(_("_Remove"), Icons.LIST_REMOVE)
menu.append(remove_item)
menu.show_all()
view.connect('popup-menu', self.__popup, menu)
connect_obj(remove_item, 'activate', self.__remove, view)
# Add and Remove buttons
vbbox = Gtk.VButtonBox()
vbbox.set_layout(Gtk.ButtonBoxStyle.START)
vbbox.set_spacing(6)
add = Button(_("_Add"), Icons.LIST_ADD)
add.connect("clicked", self.__add)
vbbox.pack_start(add, False, True, 0)
remove = Button(_("_Remove"), Icons.LIST_REMOVE)
remove.connect("clicked", self.__remove)
vbbox.pack_start(remove, False, True, 0)
hbox.pack_start(vbbox, False, True, 0)
vbox.pack_start(hbox, True, True, 0)
# Close buttons
bbox = Gtk.HButtonBox()
self.remove_but = Button(_("_Remove"), Icons.LIST_REMOVE)
self.remove_but.set_sensitive(False)
close = Button(_("_Close"), Icons.WINDOW_CLOSE)
connect_obj(close, 'clicked', qltk.Window.destroy, self)
bbox.set_layout(Gtk.ButtonBoxStyle.END)
if not self.has_close_button():
bbox.pack_start(close, True, True, 0)
vbox.pack_start(bbox, False, True, 0)
# Finish up
self.add(vbox)
self.get_child().show_all()
def __setup_column(self, view):
def tag_cdf(column, cell, model, iter, data):
row = model[iter]
if row:
cell.set_property('text', row[0])
def desc_cdf(column, cell, model, iter, data):
row = model[iter]
if row:
name = re.sub(':[a-z]+$', '', row[0].strip('~#'))
try:
t = _TAGS[name]
valid = (not t.hidden
and t.numeric == row[0].startswith('~#'))
val = t.desc if valid else name
except KeyError:
val = name
cell.set_property('text', util.title(val.replace('~', ' / ')))
render = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(_("Tag expression"), render)
column.set_cell_data_func(render, tag_cdf)
column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
column.set_expand(True)
view.append_column(column)
render = Gtk.CellRendererText()
render.set_property('ellipsize', Pango.EllipsizeMode.END)
column = Gtk.TreeViewColumn(_("Description"), render)
column.set_cell_data_func(render, desc_cdf)
#.........这里部分代码省略.........
示例3: __init__
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
def __init__(self, library):
super(MediaDevices, self).__init__(spacing=6)
self.set_orientation(Gtk.Orientation.VERTICAL)
self._register_instance()
self.__cache = {}
# Device list on the left pane
swin = ScrolledWindow()
swin.set_shadow_type(Gtk.ShadowType.IN)
swin.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self.pack_start(swin, True, True, 0)
self.__view = view = AllTreeView()
view.set_model(self.__devices)
view.set_rules_hint(True)
view.set_headers_visible(False)
view.get_selection().set_mode(Gtk.SelectionMode.BROWSE)
connect_obj(view.get_selection(), 'changed', self.__refresh, False)
view.connect('popup-menu', self.__popup_menu, library)
view.connect('row-activated', lambda *a: self.songs_activated())
swin.add(view)
col = Gtk.TreeViewColumn("Devices")
view.append_column(col)
render = Gtk.CellRendererPixbuf()
col.pack_start(render, False)
col.add_attribute(render, 'icon-name', 1)
self.__render = render = Gtk.CellRendererText()
render.set_property('ellipsize', Pango.EllipsizeMode.END)
render.connect('edited', self.__edited)
col.pack_start(render, True)
col.set_cell_data_func(render, MediaDevices.cell_data)
hbox = Gtk.HBox(spacing=6)
hbox.set_homogeneous(True)
self.pack_start(Align(hbox, left=3, bottom=3), False, True, 0)
# refresh button
refresh = Button(_("_Refresh"), Gtk.STOCK_REFRESH, Gtk.IconSize.MENU)
self.__refresh_button = refresh
connect_obj(refresh, 'clicked', self.__refresh, True)
refresh.set_sensitive(False)
hbox.pack_start(refresh, True, True, 0)
# eject button
eject = Button(_("_Eject"), "media-eject", Gtk.IconSize.MENU)
self.__eject_button = eject
eject.connect('clicked', self.__eject)
eject.set_sensitive(False)
hbox.pack_start(eject, True, True, 0)
# Device info on the right pane
self.__header = table = Gtk.Table()
table.set_col_spacings(8)
self.__device_icon = icon = Gtk.Image()
icon.set_size_request(48, 48)
table.attach(icon, 0, 1, 0, 2, 0)
self.__device_name = label = Gtk.Label()
label.set_ellipsize(Pango.EllipsizeMode.END)
label.set_alignment(0, 0)
table.attach(label, 1, 3, 0, 1)
self.__device_space = label = Gtk.Label()
label.set_ellipsize(Pango.EllipsizeMode.END)
label.set_alignment(0, 0.5)
table.attach(label, 1, 2, 1, 2)
self.__progress = progress = Gtk.ProgressBar()
progress.set_size_request(150, -1)
table.attach(progress, 2, 3, 1, 2, xoptions=0, yoptions=0)
self.accelerators = Gtk.AccelGroup()
key, mod = Gtk.accelerator_parse('F2')
self.accelerators.connect(key, mod, 0, self.__rename)
self.__statusbar = WaitLoadBar()
for child in self.get_children():
child.show_all()
示例4: JSONBasedEditor
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
class JSONBasedEditor(qltk.UniqueWindow):
"""
Flexible editor for objects extending `JSONObject`
(held in a `JSONObjectDict`)
TODO: validation, especially for name.
"""
_WIDTH = 800
_HEIGHT = 400
def __init__(self, Prototype, values, filename, title):
if self.is_not_unique():
return
super(JSONBasedEditor, self).__init__()
self.Prototype = Prototype
self.current = None
self.filename = filename
self.name = Prototype.NAME or Prototype.__name__
self.input_entries = {}
self.set_border_width(12)
self.set_title(title)
self.set_default_size(self._WIDTH, self._HEIGHT)
self.add(Gtk.HBox(spacing=6))
self.get_child().set_homogeneous(True)
self.accels = Gtk.AccelGroup()
# Set up the model for this widget
self.model = Gtk.ListStore(object)
self._fill_values(values)
# The browser for existing data
self.view = view = RCMHintedTreeView(model=self.model)
view.set_headers_visible(False)
view.set_reorderable(True)
view.set_rules_hint(True)
render = Gtk.CellRendererText()
render.set_padding(3, 6)
render.props.ellipsize = Pango.EllipsizeMode.END
column = Gtk.TreeViewColumn("", render)
column.set_cell_data_func(render, self.__cdf)
view.append_column(column)
sw = Gtk.ScrolledWindow()
sw.set_shadow_type(Gtk.ShadowType.IN)
sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
sw.add(view)
self.get_child().pack_start(sw, True, True, 0)
vbox = Gtk.VBox(spacing=6)
# Input for new ones.
frame = self.__build_input_frame()
vbox.pack_start(frame, False, True, 0)
# Add context menu
menu = Gtk.Menu()
rem = MenuItem(_("_Remove"), Icons.LIST_REMOVE)
keyval, mod = Gtk.accelerator_parse("Delete")
rem.add_accelerator(
'activate', self.accels, keyval, mod, Gtk.AccelFlags.VISIBLE)
connect_obj(rem, 'activate', self.__remove, view)
menu.append(rem)
menu.show_all()
view.connect('popup-menu', self.__popup, menu)
view.connect('key-press-event', self.__view_key_press)
connect_obj(self, 'destroy', Gtk.Menu.destroy, menu)
# New and Close buttons
bbox = Gtk.HButtonBox()
self.remove_but = Button(_("_Remove"), Icons.LIST_REMOVE)
self.remove_but.set_sensitive(False)
self.new_but = Button(_("_New"), Icons.DOCUMENT_NEW)
self.new_but.connect('clicked', self._new_item)
bbox.pack_start(self.new_but, True, True, 0)
close = Button(_("_Close"), Icons.WINDOW_CLOSE)
connect_obj(close, 'clicked', qltk.Window.destroy, self)
bbox.pack_start(close, True, True, 0)
vbox.pack_end(bbox, False, True, 0)
self.get_child().pack_start(vbox, True, True, 0)
# Initialise
self.selection = view.get_selection()
self.selection.connect('changed', self.__select)
self.connect('destroy', self.__finish)
self.get_child().show_all()
def _find(self, name):
for row in self.model:
if row[0].name == name:
return row[0]
def _new_item(self, button):
current_name = name = _("New %s") % self.name
n = 2
while True:
if self._find(current_name):
current_name = "%s (%d)" % (name, n)
n += 1
continue
break
#.........这里部分代码省略.........
示例5: AlbumArtWindow
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
#.........这里部分代码省略.........
hpaned.set_position(275)
self.add(hpaned)
self.show_all()
left_vbox.pack_start(self.progress, False, True, 0)
if songs[0]('albumartist'):
text = songs[0]('albumartist')
else:
text = songs[0]('artist')
text += ' - ' + songs[0]('album')
self.set_text(text)
self.start_search()
def __drag_data_get(self, view, ctx, sel, tid, etime, treeselection):
model, iter = treeselection.get_selected()
if not iter:
return
cover = model.get_value(iter, 1)
sel.set_uris([cover['cover']])
def start_search(self, *data):
"""Start the search using the text from the text entry"""
text = self.search_field.get_text()
if not text or self.search_lock:
return
self.search_lock = True
self.search_button.set_sensitive(False)
self.progress.set_fraction(0)
self.progress.set_text(_(u'Searching…'))
self.progress.show()
self.liststore.clear()
self.search = search = CoverSearch(self.__search_callback)
for eng in engines:
if self.config_get(CONFIG_ENG_PREFIX + eng['config_id'], True):
search.add_engine(eng['class'], eng['replace'])
search.start(text)
# Focus the list
self.treeview.grab_focus()
self.connect("destroy", self.__destroy)
def __destroy(self, *args):
self.search.stop()
def set_text(self, text):
"""set the text and move the cursor to the end"""
self.search_field.set_text(text)
self.search_field.emit('move-cursor', Gtk.MovementStep.BUFFER_ENDS,
0, False)
def __select_callback(self, selection, image):
model, iter = selection.get_selected()
示例6: CoverArea
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
class CoverArea(Gtk.VBox, PluginConfigMixin):
"""The image display and saving part."""
CONFIG_SECTION = PLUGIN_CONFIG_SECTION
def __init__(self, parent, song):
super(CoverArea, self).__init__()
self.song = song
self.dirname = song("~dirname")
self.main_win = parent
self.data_cache = []
self.current_data = None
self.current_pixbuf = None
self.image = Gtk.Image()
self.button = Button(_("_Save"), Icons.DOCUMENT_SAVE)
self.button.set_sensitive(False)
self.button.connect('clicked', self.__save)
close_button = Button(_("_Close"), Icons.WINDOW_CLOSE)
close_button.connect('clicked', lambda x: self.main_win.destroy())
self.window_fit = self.ConfigCheckButton(_('Fit image to _window'),
'fit', True)
self.window_fit.connect('toggled', self.__scale_pixbuf)
self.name_combo = Gtk.ComboBoxText()
self.cmd = qltk.entry.ValidatingEntry(iscommand)
# Both labels
label_open = Gtk.Label(label=_('_Program:'))
label_open.set_use_underline(True)
label_open.set_mnemonic_widget(self.cmd)
label_open.set_justify(Gtk.Justification.LEFT)
self.open_check = self.ConfigCheckButton(_('_Edit image after saving'),
'edit', False)
label_name = Gtk.Label(label=_('File_name:'), use_underline=True)
label_name.set_use_underline(True)
label_name.set_mnemonic_widget(self.name_combo)
label_name.set_justify(Gtk.Justification.LEFT)
self.cmd.set_text(self.config_get('edit_cmd', 'gimp'))
# Create the filename combo box
fn_list = ['cover.jpg', 'folder.jpg', '.folder.jpg']
# Issue 374 - add dynamic file names
artist = song("artist")
alartist = song("albumartist")
album = song("album")
labelid = song("labelid")
if album:
fn_list.append("<album>.jpg")
if alartist:
fn_list.append("<albumartist> - <album>.jpg")
else:
fn_list.append("<artist> - <album>.jpg")
else:
print_w(u"No album for \"%s\". Could be difficult "
u"finding art…" % song("~filename"))
title = song("title")
if title and artist:
fn_list.append("<artist> - <title>.jpg")
if labelid:
fn_list.append("<labelid>.jpg")
set_fn = self.config_get('fn', fn_list[0])
for i, fn in enumerate(fn_list):
self.name_combo.append_text(fn)
if fn == set_fn:
self.name_combo.set_active(i)
if self.name_combo.get_active() < 0:
self.name_combo.set_active(0)
table = Gtk.Table(n_rows=2, n_columns=2, homogeneous=False)
table.set_row_spacing(0, 5)
table.set_row_spacing(1, 5)
table.set_col_spacing(0, 5)
table.set_col_spacing(1, 5)
table.attach(label_open, 0, 1, 0, 1)
table.attach(label_name, 0, 1, 1, 2)
table.attach(self.cmd, 1, 2, 0, 1)
table.attach(self.name_combo, 1, 2, 1, 2)
self.scrolled = Gtk.ScrolledWindow()
self.scrolled.add_with_viewport(self.image)
self.scrolled.set_policy(Gtk.PolicyType.AUTOMATIC,
Gtk.PolicyType.AUTOMATIC)
bbox = Gtk.HButtonBox()
bbox.set_spacing(6)
bbox.set_layout(Gtk.ButtonBoxStyle.END)
#.........这里部分代码省略.........
示例7: AlbumArtWindow
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
#.........这里部分代码省略.........
text = SEARCH_PATTERN.format(song)
self.set_text(text)
self.start_search()
def __save_config(self, widget):
self.config_set('searchraw', self.search_radioraw.get_active())
self.config_set('resultsmax',
self.search_spinresultsmax.get_value_as_int())
def __drag_data_get(self, view, ctx, sel, tid, etime, treeselection):
model, iter = treeselection.get_selected()
if not iter:
return
cover = model.get_value(iter, 1)
sel.set_uris([cover['cover']])
def __searchfieldchanged(self, *data):
search = data[0].get_text()
clean = cleanup_query(search, ' ')
self.search_fieldclean.set_text('<b>' + clean + '</b>')
self.search_fieldclean.set_use_markup(True)
def __searchtypetoggled(self, *data):
self.config_set('searchraw', self.search_radioraw.get_active())
def start_search(self, *data):
"""Start the search using the text from the text entry"""
text = self.search_fieldraw.get_text()
if not text or self.search_lock:
return
self.search_lock = True
self.search_button.set_sensitive(False)
self.progress.set_fraction(0)
self.progress.set_text(_(u'Searching…'))
self.progress.show()
self.liststore.clear()
self.search = search = CoverSearch(self.__search_callback)
for eng in ENGINES:
if self.config_get_bool(
CONFIG_ENG_PREFIX + eng['config_id'], True):
search.add_engine(eng['class'], eng['replace'])
raw = self.search_radioraw.get_active()
limit = self.search_spinresultsmax.get_value_as_int()
search.start(text, raw, limit)
# Focus the list
self.treeview.grab_focus()
self.connect("destroy", self.__destroy)
def __destroy(self, *args):
self.search.stop()
def set_text(self, text):
"""set the text and move the cursor to the end"""
self.search_fieldraw.set_text(text)
self.search_fieldraw.emit('move-cursor', Gtk.MovementStep.BUFFER_ENDS,
0, False)
示例8: MultiStringEditor
# 需要导入模块: from quodlibet.qltk.x import Button [as 别名]
# 或者: from quodlibet.qltk.x.Button import set_sensitive [as 别名]
class MultiStringEditor(qltk.UniqueWindow):
"""Dialog to edit a list of strings"""
_WIDTH = 400
_HEIGHT = 300
def __init__(self, title, values=None):
super(MultiStringEditor, self).__init__()
self.data = values or []
self.set_border_width(12)
self.set_title(title)
self.set_default_size(self._WIDTH, self._HEIGHT)
vbox = Gtk.VBox(spacing=12)
hbox = Gtk.HBox(spacing=12)
# Set up the model for this widget
self.model = Gtk.ListStore(str)
self.__fill_values()
# Main view
view = self.view = HintedTreeView(model=self.model)
view.set_fixed_height_mode(True)
view.set_headers_visible(False)
sw = Gtk.ScrolledWindow()
sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
sw.set_shadow_type(Gtk.ShadowType.IN)
sw.add(view)
sw.set_size_request(-1, max(sw.size_request().height, 100))
hbox.pack_start(sw, True, True, 0)
self.__setup_column(view)
# Context menu
menu = Gtk.Menu()
remove_item = MenuItem(_("_Remove"), Icons.LIST_REMOVE)
menu.append(remove_item)
menu.show_all()
view.connect('popup-menu', self.__popup, menu)
connect_obj(remove_item, 'activate', self.__remove, view)
# Add and Remove buttons
vbbox = Gtk.VButtonBox()
vbbox.set_layout(Gtk.ButtonBoxStyle.START)
vbbox.set_spacing(6)
add = Button(_("_Add"), Icons.LIST_ADD)
add.connect("clicked", self.__add)
vbbox.pack_start(add, False, True, 0)
remove = Button(_("_Remove"), Icons.LIST_REMOVE)
remove.connect("clicked", self.__remove)
vbbox.pack_start(remove, False, True, 0)
hbox.pack_start(vbbox, False, True, 0)
vbox.pack_start(hbox, True, True, 0)
# Close buttons
bbox = Gtk.HButtonBox()
self.remove_but = Button(_("_Remove"), Icons.LIST_REMOVE)
self.remove_but.set_sensitive(False)
close = Button(_("_Close"), Icons.WINDOW_CLOSE)
connect_obj(close, 'clicked', qltk.Window.destroy, self)
bbox.set_layout(Gtk.ButtonBoxStyle.END)
bbox.pack_start(close, True, True, 0)
vbox.pack_start(bbox, False, True, 0)
# Finish up
self.add(vbox)
self.get_child().show_all()
def __setup_column(self, view):
def cdf(column, cell, model, iter, data):
row = model[iter]
if row:
cell.set_property('text', row[0])
render = Gtk.CellRendererText()
render.set_property('ellipsize', Pango.EllipsizeMode.END)
column = Gtk.TreeViewColumn(None, render)
column.set_cell_data_func(render, cdf)
column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
view.append_column(column)
def __fill_values(self):
for s in self.data:
self.model.append(row=[s])
def get_strings(self):
strings = [row[0] for row in self.model if row]
return strings
def __remove(self, *args):
self.view.remove_selection()
def __add(self, *args):
dialog = GetStringDialog(self, _("Enter new value"), "",
button_label=_("_Add"),
button_icon=Icons.LIST_ADD)
new = dialog.run()
if new:
self.model.append(row=[new])
#.........这里部分代码省略.........