Как сделать запись Gtk.ComboBoxText редактируемой в Glade

Я использую Glade для написания приложения PyGI и столкнулся с проблемой, из-за которой у меня есть Gtk.ComboBoxText с Gtk.Entry, но я не могу сделать запись редактируемой по какой-то причине. То есть когда пользовательский интерфейс загружен, в него нельзя вводить текст.

Я просмотрел все свойства записи, а также свойства родительского элемента comboboxtext, но не смог найти ничего очевидного, что мне не хватает. Как ни странно, если я создаю его только с помощью кода (то есть без файлов Glade .ui), это, кажется, работает, и запись затем редактируется.

Этот код не работает

Код:

#!/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()

Файл 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()

Любой указатели на то, как сделать текстовую запись редактируемой в коде Glade?

5
задан 19 May 2012 в 14:50

1 ответ

Попробуйте установить can_focus в значение «Истина», если вы не можете выделить клавиатуру для ввода, вы не сможете ничего в нее ввести.

0
ответ дан 19 May 2012 в 14:50

Другие вопросы по тегам:

Похожие вопросы: