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

Тут можно читать онлайн Нейл Мэтью - Основы программирования в Linux - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-osnet, издательство «БХВ-Петербург», год 2009. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Основы программирования в Linux
  • Автор:
  • Жанр:
  • Издательство:
    «БХВ-Петербург»
  • Год:
    2009
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-0289-4
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Основы программирования в Linux - описание и краткое содержание, автор Нейл Мэтью, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Для начинающих Linux-программистов

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

Основы программирования в Linux - читать книгу онлайн бесплатно, автор Нейл Мэтью
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

GtkObject* gtk_adjustment_new(gdouble value, gdouble lower,

gdouble upper, gdouble step_increment,

gdouble page_increment, gdouble page_size);

Значения параметров step_incrementи page_incrementзадают величину минимального и максимального приращений, В случае кнопки-счетчика GtkSpinButtonпараметр step_incrementопределяет, насколько изменится значение при щелчке мышью стрелки виджета. Параметры page_incrementи page_sizeв виджетах GtkSpinButtonне важны.

Второй параметр, climb_rate, функции gtk_spin_button_newуправляет скоростью прокрутки значений при нажатии и удерживании кнопки со стрелкой. И наконец, параметр digitsзадает точность представления числового значения, виджета, если, например, digitsравен 3, кнопка-счетчик отобразит 0.00.

Функция gtk_spin_button_new_with_range— удобный способ создания объекта GtkAdjustment. Просто задайте нижнюю и верхнюю границы и величину приращения.

Прочесть текущее значение очень легко благодаря функции gtk_spin_button_getvalue, а если вам нужно целое число, можно применить функцию gtk_spin_button_get_value_as_int.

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

Упражнение 16.5. Использование виджета GtkSpinButton

Сейчас мы посмотрим в коротком примере, как действует кнопка-счетчик GtkSpinButton. Назовите файл spin.с.

#include

void closeApp(GtkWidget *window, gpointer data) {

gtk_main_quit();

}

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

GtkWidget* window;

GtkWidget *spinbutton;

GtkObject *adjustment;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);

g_signal_connect(GTK_OBJECT(window), "destroy",

GTK_SIGNAL_FUNC(closeApp), NULL);

adjustment = gtk_adjustment_new(100.0, 50.0, 150.0, 0.5, 0.05, 0.05);

spinbutton = gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 0.01, 2);

gtk_container_add(GTK_CONTAINER(window), spinbutton);

gtk_widget_show_all(window);

gtk_main();

return 0;

}

Когда вы выполните программу, то получите кнопку-счетчик, ограниченную диапазоном значений 50–150 (рис. 16.9).

Рис 169 GtkButton Вы уже видели виджет кнопки GtkButtonв действии но - фото 58

Рис. 16.9

GtkButton

Вы уже видели виджет кнопки GtkButtonв действии, но существует несколько виджетов, потомков GtkButton, с чуть большими функциональными возможностями, заслуживающими упоминания.

GtkButton

+----GtkToggleButton

+----GtkCheckButton

+----GtkRadioButton

Как видно из иерархии виджетов, кнопка-переключатель типа GtkToggleButton— прямой потомок кнопки GtkButton, кнопка-флажок GtkCheckButton— кнопки-выключателя GtkToggleButtonи то же самое для переключателя GtkRadioButton, причем каждый дочерний виджет предназначен для определенных задач.

GtkToggleButton

Виджет GtkToggleButtonидентичен виджету GtkButtonза исключением одной важной детали: GtkToggleButtonобладает состоянием. Это означает, что кнопка-выключатель может быть включена или выключена. Когда пользователь щелкает мышью виджет GtkToggleButton, последний стандартным способом порождает сигнал clickedи изменяет (или "переключает") свое состояние.

API у виджета GtkToggleButtonочень простой:

GtkWidget* gtk_toggle_button_new(void);

GtkWidget* gtk_toggle_button_new_with_label(const gchar* label);

gboolean gtk_toggle_button_get_active(GtkToggleButton *toggle_button);

void gtk_toggle_button_set_active(GtkToggleButton *toggle_button,

gboolean is_active);

Наиболее интересные функции — gtk_toggle_button_get_activeи gtk_toggle_button_set_active, которые вы вызываете для чтения и установки состояния кнопки-выключателя. Если характеристика функционирования равна TRUE, это означает, что кнопка-выключатель GtkToggleButtonвключена.

GtkCheckButton

Кнопка-флажок GtkCheckButton— это замаскированная кнопка-выключатель GtkToggleButton. Вместо скучного прямоугольного отображения GtkToggleButtonкнопка GtkCheckButtonвыводится как привлекательный флажок с расположенным рядом текстом. Функциональных различий между ними нет.

GtkWidget* gtk_check_button_new(void);

GtkWidget* gtk_check_button_new_with_label(const gchar *label);

GtkRadioButton

Эта кнопка немного отличается от предыдущих, т.к. может группироваться с другими кнопками того же типа. Переключатель (или радиокнопка) GtkRadioButton— одна из тех кнопок, которые позволяют выбирать только один вариант из группы предложенных. Имя заимствовано у старых радиоприемников с механическими кнопками, которые выскакивали с треском, возвращаясь в прежнее состояние, при нажатии другой кнопки.

GtkWidget* gtk_radio_button_new(GSList *group);

GtkWidget* gtk_radio_button_new_from_widget(GtkRadioButton *group);

GtkWidget* gtk_radio_button_new_with_label(GSList *group, const gchar *label);

void gtk_radio_button_set_group(GtkRadioButton *radio_button, GSList *group);

GSList* gtk_radio_button_get_group(GtkRadioButton *radio_button);

Группа переключателей представлена в объекте-списке библиотеки GLib, названном GSList. Для того чтобы объединить переключатели в группу, вы можете создать объект GSListи затем передать ему каждую кнопку с помощью функций gtk_radio_button_newи gtk_radio_button_get_group, есть и более легкий способ в виде функции gtk_radio_button_new_with_widget, которая включает в GSList существующую кнопку. Вы увидите ее в действии в упражнении 16.6, которое позволит вам опробовать разные кнопки GtkButton.

Упражнение 16.6. GtkCheckButton, GtkToggleButtonи GtkRadioButton

Введите следующий текст в файл с именем buttons.с.

1. Сначала объявите указатели на кнопки как глобальные переменные:

#include

#include

GtkWidget *togglebutton;

GtkWidget *checkbutton;

GtkWidget *radiobutton1, *radiobutton2;

void closeApp(GtkWidget *window, gpointer data) {

gtk_main_quit();

}

2. Далее определите вспомогательную функцию, которая упаковывает GtkWidgetи GtkLabelв контейнер GtkHboxи затем вставляет этот GtkHboxв заданный виджет- контейнер. Это поможет вам сократить повторяющийся программный код:

void add_widget_with_label(GtkContainer * box, gchar * caption,

GtkWidget * widget) {

GtkWidget *label = gtk_label_new(caption);

GtkWidget *hbox = gtk_hbox_new(TRUE, 4);

gtk_container_add(GTK_CONTAINER(hbox), label);

gtk_container_add(GTK_CONTAINER(hbox), widget);

gtk_container_add(box, hbox);

}

3. print_active— еще одна вспомогательная функция, которая выводит текущее состояние заданной кнопки-выключателя GtkToggleButtonсо строкой описания. Он вызывается из функции button_clicked, функции обратного вызова, связанной с сигналом clickedкнопки OK.При каждом щелчке мышью этой кнопки вы получаете на экране отчет о состоянии кнопок:

void print_active(char * button_name, GtkToggleButton* button) {

gboolean active = gtk_toggle_button_get_active(button);

printf("%s is %s\n", button_name, active?"active":"not active");

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

Интервал:

Закладка:

Сделать


Нейл Мэтью читать все книги автора по порядку

Нейл Мэтью - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Основы программирования в Linux, автор: Нейл Мэтью. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x