Чтение онлайн

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

В заключение

hbox
добавляется в окно и выводится на экран с помощью функции
gtk_widget_show_all
.

Схему размещения упаковочного контейнера легче понять с помощью блок-схемы, показанной на рис. 16.7.

Рис. 16.7

Познакомившись с виджетами, сигналами, обратными вызовами и виджетами-контейнерами, вы рассмотрели основы комплекта инструментов GTK+. Но для того чтобы

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

Виджеты GTK+

В этом разделе мы рассмотрим API самых популярных виджетов GTK+, которые вы будете применять чаще всего в своих приложениях.

GtkWindow

GtkWindow
— базовый элемент всех приложений GTK+. До сих пор вы использовали его для хранения своих виджетов.

GtkWidget

 +---- GtkContainer

+---- GtkBin

+---- GtkWindow

Существуют десятки вызовов API

GtkWindow
, но далее приведены функции, заслуживающие особого внимания.

GtkWidget* gtk_window_new(GtkWindowType type);

void gtk_window_set_title(GtkWindow *window, const gchar *title);

void gtk_window_set_position(GtkWindow *window, GtkWindowPosition position);

void gtk_window_set_default_size(GtkWindow *window, gint width, gint height);

void gtk_window_resize(GtkWindow *window, gint width, gint height);

void gtk_window_set_resizable(GtkWindow *window, gboolean resizable);

void gtk_window_present(GtkWindow *window);

void gtk_window_maximize(GtkWindow *window);

void gtk_window_unmaximize(GtkWindow *window);

Как вы видели, функция

gtk_window_new
создает в памяти новое пустое окно. Заголовок окна не задан и размер и местоположение окна не определены. Обычно вы будете заполнять окно виджетами и задавать меню и панель инструментов перед выводом окна на экран с помощью вызова функции
gtk_widget_show
.

Функция

gtk_window_set_title
изменяет текст полосы заголовка, информируя оконный менеджер запроса.

Примечание

Поскольку за отображение оформления окна отвечает оконный менеджер, а не библиотека GTK+, шрифт, цвет и размер текста зависят от вашего выбора оконного менеджера.

Функция

gtk_window_setposition
управляет начальным местоположением на экране. Параметр
position
может принимать пять значений, перечисленных в табл. 16.2.

Таблица 16.2

Параметр
position
Описание
GTK_WIN_POS_NONE
Окно
располагается по усмотрению оконного менеджера
GTK_WIN_POS_CENTER
Окно центрируется на экране
GTK_WIN_POS_MOUSE
Расположение окна задаётся указателем мыши
GTK_WIN_POS_CENTER_ALWAYS
Окно остается отцентрированным независимо от его размера
GTK_WIN_POS_CENTER_ON_PARENT
Окно центрируется относительно родительского окна (удобно для диалоговых окон)

Функция

gtk_window_set_default_size
задает окно на экране в единицах отображения GTK+. Явное задание размера окна гарантирует, что содержимое окна не будет закрыто чем-либо или скрыто. Для того чтобы изменить размеры окна после его вывода на экран, можно воспользоваться функцией
gtk_window_resize
. По умолчанию пользователь может изменить размеры окна, перемещая обычным способом его границу мышью. Если вы хотите помешать этому, можно вызвать функцию
gtk_window_set_resizeable
, приравненную FALSE.

Для того чтобы убедиться в том, что ваше окно присутствует на экране и видно пользователю, т.е. не свернуто или скрыто, подойдет функция

gtk_window_present
. Она полезна для диалоговых окон, т.к. позволяет убедиться в том, что окна не свернуты, когда вам нужен какой-либо пользовательский ввод. В противном случае, для раскрытия окна на весь экран и его сворачивания у вас есть функции
gtk_window_maximize
и
gtk_window_minimize
.

GtkEntry

GtkEntry
виджет однострочного текстового поля, который обычно применяется для ввода простых текстовых данных, например, адреса электронной почты, имени пользователя или имени узла сети. Существуют вызовы API, позволяющие задать как считывание введенного текста, так и его максимальную длину в символах, а также другие параметры, управляющие местоположением текста и его выделением.

GtkWidget

 +----GtkEntry

Можно настроить

GtkEntry
на отображение звездочек (или любого другого определенного пользователем символа) на месте набранных буквенно-цифровых символов, что очень удобно для ввода паролей, когда вы не хотите, чтобы кто-то заглядывал через ваше плечо и читал текст.

Мы опишем большинство самых полезных функций виджета

GtkEntry
:

GtkWidget* gtk_entry_new(void);

GtkWidget* gtk_entry_new_with_max_length(gint max);

Поделиться:
Популярные книги

Путь Шедара

Кораблев Родион
4. Другая сторона
Фантастика:
боевая фантастика
6.83
рейтинг книги
Путь Шедара

Афганский рубеж 2

Дорин Михаил
2. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Афганский рубеж 2

Жрец Хаоса. Книга III

Борзых М.
3. Зов пустоты
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Жрец Хаоса. Книга III

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Защитник

Кораблев Родион
11. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Защитник

Апокриф

Вайс Александр
10. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Апокриф

Лекарь Империи 3

Карелин Сергей Витальевич
3. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи 3

Легионы во Тьме 2

Владимиров Денис
10. Глэрд
Фантастика:
боевая фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Легионы во Тьме 2

На границе империй. Том 10. Часть 8

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 8

Черный Маг Императора 10

Герда Александр
10. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 10

Двойник короля 14

Скабер Артемий
14. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 14

Клод Моне

де Декер Мишель
1034. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Клод Моне

Кодекс Охотника. Книга ХХХ

Винокуров Юрий
30. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга ХХХ

Локки 10. Потомок бога

Решетов Евгений Валерьевич
10. Локки
Фантастика:
фэнтези
юмористическое фэнтези
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Локки 10. Потомок бога