GTK + поиск GTKWidget по контрольному идентификатору - PullRequest
1 голос
/ 23 марта 2011

Есть ли способ найти GTKWidget по имени / идентификатору элемента управления из текущей области окна из c / c ++?

В Winforms у вас было что-то вроде этого:

public class Form1 : Form
{
    public void Test()
    {
      this.Controls.Find("ControlName");
    }
}

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Вы можете установить имена для виджетов, используя <a href="http://library.gnome.org/devel/gtk/stable/GtkWidget.html#gtk-widget-set-name" rel="nofollow">gtk_widget_set_name()</a>, но я не думаю, что есть встроенные функции для поиска виджетов в иерархиях, основанных на имени.

Это не было бы слишком сложно написать, если бы у вас была потребность.

Как указывал Мика, дело не в том, как приложения GTK + обычно структурированы, а в том, чтобы вручную создавать пользовательские интерфейсы, гораздо чаще сохранять указатели на нужные виджеты с момента их создания:

0 голосов
/ 28 марта 2011

В GTK + мы храним ссылки на любой виджет, к которому нам может понадобиться доступ в более позднем коде, используя переменную (или struct / class / etc.), Которая передается как пользовательские данные в соответствующих функциях обратного вызова.Если вы используете построитель пользовательского интерфейса (например, glade), тогда да, есть способ ссылаться на виджет по имени, которое вы дали ему в конструкторе пользовательского интерфейса.В противном случае ответ заключается в том, что нет способа «найти» виджеты, подобные этому.

Если бы вы могли привести более конкретный пример, я мог бы уточнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...