Gtk #, CellRendererCombo, всегда показывать выпадающий список, отключить ввод? - PullRequest
0 голосов
/ 12 октября 2019

Код ниже, и в настоящее время он выглядит так: enter image description here

  1. Кажется, что CellRendererCombo выглядит как CellRendererText, и у меня естьдважды щелкните по нему, чтобы отобразить раскрывающийся список. Можно ли показывать кнопку выпадающего меню всегда, как это?

enter image description here

В настоящее время можно ввести в поле со списком. Можно ли ограничиться выбором только из существующих значений (мужской, женский), не позволяя набирать новый текст? enter image description here

Исходный код

        st = new Gtk.TreeStore(typeof(string), typeof(int), typeof(string));
        st.AppendValues("Homer", 38, "male");
        st.AppendValues("Marge", 34, "female");

        MyTree.Model = st;

        var r1 = new Gtk.CellRendererText();
        var r2 = new Gtk.CellRendererText();
        var r3 = new Gtk.CellRendererCombo();
        var genders = new Gtk.ListStore(typeof(string));
        genders.AppendValues("male");
        genders.AppendValues("female");
        r3.Model = genders;
        r3.TextColumn = 0;
        r3.Editable = true;

        MyTree.Columns[0].PackStart(r1, false);
        MyTree.Columns[1].PackStart(r2, false);
        MyTree.Columns[2].PackStart(r3, false);

        MyTree.Columns[0].AddAttribute(r1, "text", 0);
        MyTree.Columns[1].AddAttribute(r2, "text", 1);
        MyTree.Columns[2].AddAttribute(r3, "text", 2);

1 Ответ

0 голосов
/ 14 октября 2019

Вы хотите установить для свойства has-entry значение False.

Это приведет к чему-то вроде (я не очень хорош в C #):

var r3 = new Gtk.CellRendererCombo();
r3.SetHasEntry(false); // or if that fails, use
r3.SetProperty('has-entry', false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...