【问题标题】:Python - Gtk.TreeView with CheckBoxPython - 带有复选框的 Gtk.TreeView
【发布时间】:2014-07-25 19:16:19
【问题描述】:

我需要将项目存储在一个 Gtk TreeView 中,当与这个 TreeView 交互时,用户可以在列表中选择一个或多个项目。

因为我是 GTK 的新手,所以我设法填充树视图并显示一个复选框,如下面的代码所示。但是当我尝试选择时,什么也没有发生,我不知道如何做到这一点。

这是我的代码:

# the column is created
renderer_products = gtk.CellRendererText()
column_products = gtk.TreeViewColumn("Products", renderer_products, text=0)
# and it is appended to the treeview
view.append_column(column_products)

# the column checkbox is created
renderer_checkbox = gtk.CellRendererToggle()
column_checkbox = gtk.TreeViewColumn("Selected", renderer_checkbox, text=0)
# and it is appended to the treeview
view.append_column(column_checkbox)

【问题讨论】:

    标签: python list python-2.7 gtk gtktreeview


    【解决方案1】:
    1. 如果你想选择整行并且发生了一些事情:

      #double click or not double click use
      Gtk.TreeView.set_activate_on_single_click (bool)
      #connect the treeview
      treeview.connect ("row-activated", on_row_activate)
      #inside the callback
      def on_row_activate (treeview, path, column):
          model = treeview.get_model ()
          iter  = treeview.get_iter (path)
          yourdata = model[iter][model_index]
          #do whatever with yourdata
      
    2. 如果你想在你点击切换按钮时发生一些事情:

      #connect the renderer
      renderer_checkbox.connect ("toggled", on_selected_toggled)
      #inside the callback
      def on_selected_toggled (renderer, path):
          #modify the model or get the value or whatever
      

    【讨论】:

    • 谢谢,luciomrx。但是你的第二个提示并没有解决。 GetTreeViewColumn 中不存在“切换”信号。
    • 它不是 Gtk.TreeView 信号,它是 Gtk.CellRendererToggle
    猜你喜欢
    • 2017-04-03
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2013-06-19
    相关资源
    最近更新 更多