The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Виджеты

Далее, любая программа будет иметь некоторые элементы пользовательского интерфейса. В традиции X они называются виджетами. Все виджеты -- это подклассы базового класса GtkWidget, поэтому вы можете использовать GtkWidget* для ссылки на них. (Так как C не имеет родной поддержки наследования объектов, Gtk+ имеет свой собственный механизм -- глава 9 его описывает.)
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  button = gtk_button_new();
  label = gtk_label_new("Hello, World!");
  
  gtk_container_add(GTK_CONTAINER(button), label);
  gtk_container_add(GTK_CONTAINER(window), button);
  
  gtk_window_set_title(GTK_WINDOW(window), "Hello");
  gtk_container_set_border_width(GTK_CONTAINER(button), 10);

Каждый виджет имеет функцию с именем "gtk_widgetname_new()", аналогичную конструктору в C++ или Java. Эта функция выделяет новый объект, инициализирует его и возвращает указатель на него. Все процедуры "_new()" возвращают GtkWidget* даже если они выделяют его подкласс; это сделано для удобства.

Как только у вас есть GtkWidget*, представляющий объект, вы можете манипулировать объектом, используя его методы. Все функции виджетов Gtk+ начинаются с имени типа, над которым они оперируют, и принимают указатель на этот тип в качестве первого аргумента. В вышеприведенном коде, "gtk_container_add()" принимает GtkContainer* в качестве первого аргумента. Макрос "GTK_CONTAINER()" транслирует тип GtkWidget*, а также выполняет проверку типов периода исполнения. Трансляция требуется из-за того, что C не понимает отношение наследования.

Как вы могли представить, GtkButton и GtkWindow -- оба подклассы GtkContainer. GtkContainer может содержать в себе любой другой виджет. Код создает окно верхнего уровня, помещает внутрь него кнопку, и помещает метку (строку текста) внутрь кнопки. Затем он устанавливает заголовок окна, и добавляет небольшой косметический бордюр вокруг кнопки.


Linux Land
2000-09-15

АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Подробнее о проведении акции вы можете прочитать на странице сайта.


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList