Glade GTK3 Python 树视图切换不会切换
Glade GTK3 Python treeview toggles wont toggle
我有一个应用程序,当我使用 Glade 构建应用程序时,GtkCellRendererToggle 不会触发回调。具体来说,如果切换按钮设置为True,当我点击它时,会执行回调,但是当按钮切换为False时,不会触发回调。
我正在使用 Python 3、GTK3 和 Glade 3.22.1 我包括 Python 源代码以及相关的 xml。工作示例来自 python gtk3 教程:https://python-gtk-3-tutorial.readthedocs.io/en/latest/cellrenderers.html
Blockquote
<object class="GtkTreeView" id="treeview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore</property>
<child internal-child="selection">
<object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="togglecolumn">
<property name="title">Togggle</property>
<child>
<object class="GtkCellRendererToggle" id="togglerenderer">
<signal name="toggled" handler="on_cell_toggled" swapped="no"/>
</object>
<attributes>
<attribute name="activatable">0</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
/>
Blockquote
builder = Gtk.Builder()
builder.add_from_file("example.glade")
window = builder.get_object("window")
# Load list data.
self.liststore = builder.get_object ("liststore")
builder.connect_signals(self)
window.show()
def on_cell_toggled(self, widget, path):
self.liststore[path][0] = not self.liststore[path][0]
/>
您将看到 3 行切换按钮,第一行和第三行已选中。如果您单击其中一个复选框,将执行 on_cell_toggle 回调,但一旦它被切换为 false,它就不再触发回调。在本教程的示例中,切换按预期工作。
您已将可激活 属性 设置为与活动 属性 相同的列:
<attributes>
<attribute name="activatable">0</attribute>
<attribute name="active">0</attribute>
</attributes>
应该是:
<attributes>
<attribute name="active">0</attribute>
</attributes>
我有一个应用程序,当我使用 Glade 构建应用程序时,GtkCellRendererToggle 不会触发回调。具体来说,如果切换按钮设置为True,当我点击它时,会执行回调,但是当按钮切换为False时,不会触发回调。
我正在使用 Python 3、GTK3 和 Glade 3.22.1 我包括 Python 源代码以及相关的 xml。工作示例来自 python gtk3 教程:https://python-gtk-3-tutorial.readthedocs.io/en/latest/cellrenderers.html
Blockquote
<object class="GtkTreeView" id="treeview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore</property>
<child internal-child="selection">
<object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="togglecolumn">
<property name="title">Togggle</property>
<child>
<object class="GtkCellRendererToggle" id="togglerenderer">
<signal name="toggled" handler="on_cell_toggled" swapped="no"/>
</object>
<attributes>
<attribute name="activatable">0</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
/>
Blockquote
builder = Gtk.Builder()
builder.add_from_file("example.glade")
window = builder.get_object("window")
# Load list data.
self.liststore = builder.get_object ("liststore")
builder.connect_signals(self)
window.show()
def on_cell_toggled(self, widget, path):
self.liststore[path][0] = not self.liststore[path][0]
/>
您将看到 3 行切换按钮,第一行和第三行已选中。如果您单击其中一个复选框,将执行 on_cell_toggle 回调,但一旦它被切换为 false,它就不再触发回调。在本教程的示例中,切换按预期工作。
您已将可激活 属性 设置为与活动 属性 相同的列:
<attributes>
<attribute name="activatable">0</attribute>
<attribute name="active">0</attribute>
</attributes>
应该是:
<attributes>
<attribute name="active">0</attribute>
</attributes>