3

我正在使用 PyGObject 但我认为这是一个可以适用于所有 GTK 的问题,所以如果有人知道如何使用 C 或任何东西也应该在 python 中工作。

我有两个树视图,活动和非活动,我从 Sqlite 数据库加载数据,我可以交换和拖放项目从一个到另一个。这只是一个美学的事情,如果我单击一个树视图上的一个项目,我希望取消选择另一个之前选择的项目。

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

4

2 回答 2

2

冒着过于基本的风险(也许我误解了问题),要操作树视图选择,您使用GtkTreeSelectionGtkTreeView.get_selection. 您可以附加到此对象上的信号,更改当前选择等。

于 2012-05-21T17:47:28.920 回答
0

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

 (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包装器,但概念在任何语言绑定中都应该是相同的。)这种方法的一个问题是,现在为了进行选择,您必须单击树形视图两次 - 一次以获取焦点,然后再次进行选择。

于 2012-05-21T15:44:15.223 回答