2024-05-13 02:10:52 发布
网友
我使用的是PyGObject,但我认为这是一个可以适用于所有GTK的问题,因此,如果有人知道如何使用C或其他任何东西来实现它,那么python也可以。在
我有两个treeview,Active和Inactive,我从一个Sqlite数据库加载数据,我可以交换和拖放项目从一个到另一个。 这只是一个美学的东西,如果我点击一个树视图上的一个项目,我想取消选择另一个上一个选中的项目。在
似乎没有人必须做类似的事情,因为我在网上没有找到任何关于它的东西。在
冒着过于基本的风险(也许我误解了这个问题),要操作treeview选择,可以使用从GtkTreeView.get_selection返回的GtkTreeSelection对象。您可以附加到此对象上的信号,更改当前选择等
GtkTreeView.get_selection
GtkTreeSelection
要在另一个视图中关闭选择,可以获取其选择模式属性并设置为GTK_SELECTION_NONE。要在单击时重新打开它,我的想法是您可以捕获grab-focus信号,在该视图中将选择模式设置为single,在另一个视图中将选择模式设置为none:
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包装器,但在任何语言绑定中,其概念都应该相同。)这种方法的一个问题是,现在要进行选择,必须单击树视图两次,一次抓住焦点,然后再次进行选择。在
冒着过于基本的风险(也许我误解了这个问题),要操作treeview选择,可以使用从
GtkTreeView.get_selection
返回的GtkTreeSelection
对象。您可以附加到此对象上的信号,更改当前选择等要在另一个视图中关闭选择,可以获取其选择模式属性并设置为
GTK_SELECTION_NONE
。要在单击时重新打开它,我的想法是您可以捕获grab-focus
信号,在该视图中将选择模式设置为single,在另一个视图中将选择模式设置为none:(该代码正在使用guile-gnome包装器,但在任何语言绑定中,其概念都应该相同。)这种方法的一个问题是,现在要进行选择,必须单击树视图两次,一次抓住焦点,然后再次进行选择。在
相关问题 更多 >
编程相关推荐