Tente definir can_focus
como True, se você não puder dar o foco do teclado na entrada, não poderá digitar nada nela.
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.
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>
#!/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?
Tente definir can_focus
como True, se você não puder dar o foco do teclado na entrada, não poderá digitar nada nela.