Como tornar a entrada de um Gtk.ComboBoxText editável no Glade

5

Estou usando o Glade para escrever um aplicativo PyGI, e me deparei com um problema pelo qual eu tenho um Gtk.ComboBoxText com um Gtk.Entry, mas não consigo tornar a entrada editável por algum motivo. Ou seja quando a interface do usuário é carregada, não há como inserir texto nela.

Eu observei todas as propriedades da entrada e também as do pai da comboboxtext, mas não consegui encontrar nada de óbvio que esteja faltando. Curiosamente, se eu criar apenas com código (ou seja, sem arquivos Glade .ui ), isso parece funcionar e a entrada é editável.

Este código não funciona

Código:

#!/usr/bin/env python

from gi.repository import Gtk

class Combo:
    def __init__(self):
        builder = Gtk.Builder()
        builder.add_from_file('combo.ui')
        window = builder.get_object('window1')
        window.connect('destroy', lambda w: Gtk.main_quit())
        window.show_all()

Combo()
Gtk.main()

Arquivo Glade:

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <child>
      <object class="GtkComboBoxText" id="comboboxtext1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="has_entry">True</property>
        <property name="entry_text_column">0</property>
        <property name="id_column">1</property>
        <child internal-child="entry">
          <object class="GtkEntry" id="comboboxtext-entry">
            <property name="can_focus">False</property>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

Este código funciona

#!/usr/bin/env python

from gi.repository import Gtk

class Combo:
    def __init__(self):
        window = Gtk.Window()
        window.set_default_size(200, 200)

        combo = Gtk.ComboBoxText.new_with_entry()
        combo.set_hexpand(True)

        window.connect("destroy", lambda w: Gtk.main_quit())

        window.add(combo)
        window.show_all()

Combo()
Gtk.main()

Quaisquer sugestões sobre como tornar a entrada de texto editável no código do Glade?

    
por David Planella 19.05.2012 / 12:50

1 resposta

9

Tente definir can_focus como True, se você não puder dar o foco do teclado na entrada, não poderá digitar nada nela.

    
por mhall119 19.05.2012 / 15:33