PyGtk - 激活组合框

发布于 2024-09-30 04:54:06 字数 447 浏览 3 评论 0原文

如果我在 pyGTK 中有一个组合框,并且想要设置一个字符串列表,然后单击一个字符串激活一个命令,我该怎么做?

目前我有:

    self.combo_key = gtk.Combo()
    self.combo_key.set_popdown_strings(self.keys)
    self.combo_key.entry.set_text(db.keys()[0])
    self.combo_key.entry.connect("activate", self.key_sel)

但是 "activate" 仅在选择后调用,然后按 Enter 键。我还收到了 gtk.Combo() 的弃用警告,但找不到任何有关使用 gtk.ComboBoxEntry() 的帮助,

有帮助吗?

If I have a combo box in pyGTK and would like to set a list of strings and then on clicking on one activate a command how would I do it?

At the moment I have:

    self.combo_key = gtk.Combo()
    self.combo_key.set_popdown_strings(self.keys)
    self.combo_key.entry.set_text(db.keys()[0])
    self.combo_key.entry.connect("activate", self.key_sel)

But "activate" only calls after selection, and then by pressing enter. I'm also getting a deprecation warning for gtk.Combo() but cannot find any help on using gtk.ComboBoxEntry()

Any help guys?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

还给你自由 2024-10-07 04:54:06

尝试使用 gtk.ComboBox 而不是 gtk.Combo,因为后者已被弃用,取而代之的是前者。要初始化,您可以编写如下代码:

liststore = gtk.ListStore(gobject.TYPE_STRING)
for key in self.keys:
    liststore.append((key,))
combobox = gtk.ComboBox(liststore)
cell = gtk.CellRendererText()
combobox.pack_start(cell, True)
combobox.add_attribute(cell, 'text', 0)

现在连接到组合框的 changed 信号,并使用其 get_active() 方法来请求所选择的项目。

正如您可能从这个解释中猜到的那样,ComboBox 并不是专门为此目的而设计的。您可能想使用gtk.Menu

Try using a gtk.ComboBox instead of gtk.Combo, since the latter is deprecated in favor of the former. To initialise, you can you code like:

liststore = gtk.ListStore(gobject.TYPE_STRING)
for key in self.keys:
    liststore.append((key,))
combobox = gtk.ComboBox(liststore)
cell = gtk.CellRendererText()
combobox.pack_start(cell, True)
combobox.add_attribute(cell, 'text', 0)

Now you connect to the changed signal of the combobox and use its get_active() method to ask for the item that was selected.

As you might guess from this explanation, the ComboBox isn't exactly made for this purpose. You probably want to use gtk.Menu.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文