为GtkComboBox的弹出菜单设置垂直大小

2024-10-01 09:41:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个有几十个项目的GtkComboBox。当我执行时,我看到包含这些项的弹出菜单在垂直方向上非常大。 如何设置最大尺寸?我检查了文档,但没有找到定义它的方法。在

示例:

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class ComboBox(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        self.set_title("ComboBox")
        self.set_default_size(150, -1)
        self.connect("destroy", Gtk.main_quit)

        slist = Gtk.ListStore(str, str)
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])
        slist.append(['01', 'Ferro'])
        slist.append(['07', 'Uranio'])
        slist.append(['08', 'Cobalto'])

        combobox = Gtk.ComboBox()
        combobox.set_model(slist)
        self.add(combobox)

        cell1 = Gtk.CellRendererText()
        cell2 = Gtk.CellRendererText()
        combobox.pack_start(cell1, True)
        combobox.pack_start(cell2, True)
        combobox.add_attribute(cell1, "text", 0)
        combobox.add_attribute(cell2, "text", 1)

window = ComboBox()
window.show_all()

Gtk.main()

Tags: importselfaddgtksetappendgislist
1条回答
网友
1楼 · 发布于 2024-10-01 09:41:54

据我所知(也可以找到),在GtkComboBox下拉菜单中设置行数是不可能的。在

如果您坚持使用Gtk.ComboBox(),但是在出现大量条目的情况下,您可以使用以下方法来降低高度:

combobox.set_wrap_width(5)

这将显示:

enter image description here

相关问题 更多 >