Gtk树景通过信号和代码取消选择行

2024-05-13 02:10:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是PyGObject,但我认为这是一个可以适用于所有GTK的问题,因此,如果有人知道如何使用C或其他任何东西来实现它,那么python也可以。在

我有两个treeview,Active和Inactive,我从一个Sqlite数据库加载数据,我可以交换和拖放项目从一个到另一个。 这只是一个美学的东西,如果我点击一个树视图上的一个项目,我想取消选择另一个上一个选中的项目。在

似乎没有人必须做类似的事情,因为我在网上没有找到任何关于它的东西。在


Tags: 数据项目视图数据库gtksqlite事情active
2条回答

冒着过于基本的风险(也许我误解了这个问题),要操作treeview选择,可以使用从GtkTreeView.get_selection返回的GtkTreeSelection对象。您可以附加到此对象上的信号,更改当前选择等

要在另一个视图中关闭选择,可以获取其选择模式属性并设置为GTK_SELECTION_NONE。要在单击时重新打开它,我的想法是您可以捕获grab-focus信号,在该视图中将选择模式设置为single,在另一个视图中将选择模式设置为none:

 (connect view-1 'grab-focus
       (lambda args
         (set-mode (gtk-tree-view-get-selection view-1) "GTK_SELECTION_SINGLE")
         (set-mode (gtk-tree-view-get-selection view-2) "GTK_SELECTION_NONE")))

(该代码正在使用guile-gnome包装器,但在任何语言绑定中,其概念都应该相同。)这种方法的一个问题是,现在要进行选择,必须单击树视图两次,一次抓住焦点,然后再次进行选择。在

相关问题 更多 >