1

新しいGtkTreeViewものが公開されると、カーソルが表示されていない状態になります。一度フォーカスされると、フォーカスが失われてもカーソルはそこにあります。オンデマンドでカーソルを取り除く方法を探しています。

GTK+ リファレンスはgtk_tree_view_set_cursorGtkTreePath*引数がGtkTreeView*. 「無効」という用語は、さまざまな方法で解釈できます。私は多くの可能性を試しましたが、結果は segfault からまったく効果がありませんでした。したがって、私は尋ねたい:

Q1: GtkTreeView でカーソルの設定を解除することさえ可能ですか?

Q2: もしそうなら、できれば単純な C での簡単な例を教えてください。

4

2 に答える 2

3

記録のために:

使ってみましgtk_tree_view_set_cursor()たがダメでした。

とにかく、GtkTreeView使用してのカーソルを設定解除し、結果のgtk_tree_view_get_selection()を呼び出すことができます。gtk_tree_selection_unselect_all()GtkTreeSelection

于 2014-10-03T23:22:57.497 に答える
0

あなたの質問を正しく理解したかどうかはわかりませんが、私は助けることができると信じています。

まず第一に、ドキュメントには次のように書かれています。

モデルのパスが無効な場合、現在のカーソル(存在する場合)は設定解除され、関数は失敗することなく戻ります。

したがって、無効という用語は、 GtkTreeModelの無効なパスを指します。

とにかく、「ウィジェットにキーボードフォーカスを与えるために、この関数の後にgtk_widget_grab_focus(tree_view)が続くことがよくあります」とも書かれています。「フォーカスが失われた場合でも」と言ってから試したかどうかはわかりませんが、gtk_widget_grab_focusを使用して別のウィジェットにフォーカスを与えると問題が解決する可能性があります。

于 2012-07-30T02:02:33.143 に答える