如何在 Glade 中使 Gtk.ComboBoxText 的条目可编辑

如何在 Glade 中使 Gtk.ComboBoxText 的条目可编辑

我正在使用 Glade 编写 PyGI 应用程序,遇到了一个问题,我有一个 Gtk.ComboBoxText 和一个 Gtk.Entry,但由于某种原因我无法使该条目可编辑。即当 UI 加载时,无法在其中输入文本。

我查看了所有条目的属性以及 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()

林间空地文件:

<?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 代码中的文本条目可编辑,有什么指示吗?

答案1

尝试设置can_focus为 True,如果您无法将键盘焦点放在条目上,您将无法在其中输入任何内容。

相关内容