Нейл Мэтью - Основы программирования в Linux

Здесь есть возможность читать онлайн «Нейл Мэтью - Основы программирования в Linux» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2009, ISBN: 2009, Издательство: «БХВ-Петербург», Жанр: Программирование, ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Основы программирования в Linux: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Основы программирования в Linux»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.
Для начинающих Linux-программистов

Основы программирования в Linux — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Основы программирования в Linux», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Вы можете вручную задавать и изменять содержимое виджета GtkEntry, применяя функции _set_text, _append_textи _modify_text. Учтите, что они принимают указатели const.

Для применения GtkEntryв качестве поля ввода пароля, которое отображает звездочки на месте символов, воспользуйтесь функцией gtk_entry_set_visibility, передав ей параметр visibleсо значением FALSE. Скрывающий символ можно изменить в соответствии с вашими требованиями с помощью функции gtk_entry_set_invisible_char.

Выполните упражнение 16.4.

Упражнение 16.4. Ввод имени пользователя или пароля

Теперь, познакомившись с функциями виджета GtkEntry, посмотрим на них в действии в небольшой программе. Программа entry.c будет создавать окно ввода имени пользователя и пароля и сравнивать введенный пароль с секретным.

1. Сначала определим секретный пароль, остроумно заданный как secret:

#include

#include

#include

const char * password = "secret";

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

void closeApp(GtkWidget *window, gpointer data) {

gtk_main_quit();

}

void button_clicked(GtkWidget *button, gpointer data) {

const char *password_text =

gtk_entry_get_text(GTK_ENTRY((GtkWidget *) data));

if (strcmp(password_text, password) == 0)

printf("Access granted!\n");

else printf("Access denied!\n");

}

3. В функции mainсоздается, компонуется интерфейс и связываются обратные вызовы с сигналами. Для компоновки виджетов меток и полей ввода примените виджеты-контейнеры hbox и vbox:

int main (int argc, char *argv[]) {

GtkWidget *window;

GtkWidget *username_label, *password_label;

GtkWidget *username_entry, *password_entry;

GtkWidget *ok_button;

GtkWidget *hbox1, *hbox2;

GtkWidget *vbox;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window), "GtkEntryBox");

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

gtk_windowset_default_size(GTK_WINDOW(window), 200, 200);

g_signal_connect(GTK_OBJECT(window), "destroy",

GTK_SIGNAL_FUNC(closeApp), NULL);

username_label = gtk_label_new("Login:");

password_label = gtk_label_new("Password:");

username_entry = gtk_entry_new();

password_entry = gtk_entry_new();

gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE);

ok_button = gtk_button_new_with_label("Ok");

g_signal_connect(GTK_OBJECT(ok_button), "clicked",

GTK_SIGNAL_FUNC(button_clicked), password_entry);

hbox1 = gtk_hbox_new(TRUE, 5);

hbox2 = gtk_hbox_new(TRUE, 5);

vbox = gtk_vbox_new(FALSE, 10);

gtk_box_pack_start(GTK_BOX(hbox1), username_label, TRUE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(hbox1), username_entry, TRUE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(hbox2), password_label, TRUE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(hbox2), password_entry, TRUE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(vbox), hbox1, FALSE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(vbox), ck_button, FALSE, FALSE, 5);

gtk_container_add(GTK_CONTAINER(window), vbox);

gtk_widget_show_all(window);

gtk_main();

return 0;

}

Когда вы запустите программу, то получите окно, показанное на рис. 16.8.

Рис 168 Как это работает Программа создает два виджета типа GtkEntry - фото 57

Рис. 16.8

Как это работает

Программа создает два виджета типа GtkEntry, username_entryи password_entry, а также задает видимость password_entry, равной FALSE, чтобы скрыть введенный пароль. Затем она формирует кнопку GtkButton, с помощью которой вы связываете сигнал clickedс функцией обратного вызова button_clicked.

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

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

GtkSpinButton

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

GtkWidget

+---- GtkEntry

+---- GtkSpinButton

И снова API понятен, и мы перечислим наиболее часто применяемые вызовы:

GtkWidget* gtk_spin_button_new(GtkAdjustment *adjustment,

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Основы программирования в Linux»

Представляем Вашему вниманию похожие книги на «Основы программирования в Linux» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Основы программирования в Linux»

Обсуждение, отзывы о книге «Основы программирования в Linux» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x