回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我试着创造一个Gtk.TreeView公司列表中的标题名。因为以后我想用它来显示来自不同数据库的条目。在</p>
<p>问题是:
当我单击一个单元格并试图激活它时,行中的所有单元格都将被激活。更奇怪的是,它们看起来没有被激活,只有当我将光标移动到它们上面(不是点击)。在</p>
<p>这个代码有什么问题?在</p>
<pre><code>#!/usr/bin/env python
#-*- coding: utf-8 -*-
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
class CellRendererToggleWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="CellRendererToggle Example")
self.set_default_size(400, 200)
self.mainbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing = 10)
self.add(self.mainbox)
self.myliststore = Gtk.ListStore(bool,bool,str)
self.treeview = Gtk.TreeView(self.myliststore)
for n, header_text in enumerate(["Aktive", "Warning", "Text"]):
if header_text in ["Aktive", "Warning"]:
cell = Gtk.CellRendererToggle()
cell.connect("toggled", self.on_sync_treeview_button_toggled, n, header_text )
column = Gtk.TreeViewColumn(header_text, cell)
else:
cell = Gtk.CellRendererText()
cell.set_property('editable', True)
column = Gtk.TreeViewColumn(header_text, cell, text=n)
column.set_sort_column_id(n)
self.treeview.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>_column(column)
self.myliststore.append([True, True, "Super6!"])
self.myliststore.append([True, True, "Super7!"])
self.myliststore.append([True, True, "Super8!"])
self.mainbox.pack_start(self.treeview, True, True, 0)
def on_sync_treeview_button_toggled(self, widget, path, column, data):
widget.set_active( [True,False][widget.get_active()] )
win = CellRendererToggleWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
</code></pre>