Re: How to set focus on a text view when tree selection changed?
- From: kenny wang <smartkenny gmail com>
- To: Milosz Derezynski <internalerror gmail com>
- Cc: "gtk-list gnome org" <gtk-list gnome org>
- Subject: Re: How to set focus on a text view when tree selection changed?
- Date: Mon, 8 Mar 2010 09:55:02 -0800
Hi, Milosz
Thank you for reply. Your solution made focus on textview, but it's not convenient for users: they have to select the row by left clicking and then right clicking. Is there a way to do both of them? I want the user click once on the row by left button, the row is selected and then focus turns to textview.
Hope for better solutions.
Kenny
On Mon, Mar 8, 2010 at 4:11 AM, Milosz Derezynski
<internalerror gmail com> wrote:
Hmm I haven't written Gtk+ code for a while and I seem to be forgetting things. I had the impression that "changed" was a signal with a bool return value, but it turns out that's not the case.
And this time:
* Make sure this time you do NOT connect_after, but just connect
and:
* Return "True" from your handler, so that the TreeView itself doesn't process the button press and changes the selection
HTH :)
Milosz
On Mon, Mar 8, 2010 at 2:57 AM, smartkenny
<smartkenny gmail com> wrote:
Hello, Milosz
Thank you for answer my question. But it doesn't work. Here's my program:
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
def wrap(widget):
sw = gtk.ScrolledWindow()
sw.add(widget)
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
sw.set_border_width(1)
return sw
def on_selection_changed(selection):
selection.get_tree_view().grab_focus()
if __name__ == "__main__":
paned = gtk.HPaned()
treestore = gtk.TreeStore(str)
new_iter = treestore.append(None)
treestore.set(new_iter, 0, '00000')
new_iter = treestore.append(None)
treestore.set(new_iter, 0, '11111')
new_iter = treestore.append(None)
treestore.set(new_iter, 0, '22222')
new_iter = treestore.append(None)
treestore.set(new_iter, 0, '33333')
new_iter = treestore.append(None)
treestore.set(new_iter, 0, '44444')
treeview = gtk.TreeView(treestore)
treeview.set_enable_search(False)
treeview.get_selection().connect_after('changed', on_selection_changed)
column = gtk.TreeViewColumn();
renderer = gtk.CellRendererText()
column.pack_start(renderer, False)
column.add_attribute(renderer, 'text', 0)
treeview.append_column(column)
paned.add1(wrap(treeview))
textview = gtk.TextView()
paned.add2(wrap(textview))
paned.set_position(250)
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_default_size(800, 600)
window.add(paned)
window.show_all()
gtk.main()
Thank you!
Kenny
Milosz Derezynski wrote:
You need to get the TreeSelection from the TreeView and connect to that's "changed" signal, and make sure you connect_after.
Sent from my iPod
On 07.03.2010, at 19:25, smartkenny <smartkenny gmail com> wrote:
Hi, all
Searched for a long time but didn't find any hints on this. Here's my layout:
-------------------------
| | |
| tree view | text view |
| | |
-------------------------
When clicked on a tree view row, I am going to change text in text view accordingly AND let text view grab focus, so that whenever I press keys it put characters into the text view.
I tried to connect "changed" on tree view and grab focus on text view, but it didn't work, the focus is still on tree view. So when I press keys it doesn't put into the text view.
Can any body please give me a clue how to do this? Thank you very much.
Kenny
_______________________________________________
gtk-list mailing list
gtk-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-list
--
Please note that according to the German law on data retention,
information on every electronic information exchange with me is
retained for a period of six months.
[Bitte beachten Sie, dass dem Gesetz zur Vorratsdatenspeicherung zufolge
jeder elektronische Kontakt mit mir sechs Monate lang gespeichert wird.]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]