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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Приложение для работы с базой данных компакт-дисков

В предыдущих главах вы разрабатывали базу данных компакт-дисков с помощью MySQL и интерфейса на языке С. Теперь вы увидите, как просто вставить внешний GUI средствами GNOME/GTK+ и создать пользовательский интерфейс с богатыми функциональными возможностями.

Примечание

Для проверки примера приложения для работы с базой данных компакт-дисков у вас должны быть установлены СУБД MySQL и библиотеки разработки, т.е. должны выполняться те же самые требования, что и к аналогичному приложению в главе 8.

Из соображений простоты и ясности мы создадим базовый скелетный интерфейс, в котором реализовано лишь подмножество функций — к примеру, вы не сможете добавлять информацию о дорожках в компакт-диски или удалять CD. Но вы увидите в вашем приложении в действии виджеты, обсуждавшиеся в этой главе, и поймете, как они применяются в реальных программах.

Будет написан программный код для следующих ключевых действий:

□ регистрация в базе данных из GUI;

□ поиск компакт-диска;

□ отображение сведений о компакт-диске и его дорожках;

□ вставка компакт-диска в базу данных;

□ создание окна About(О программе);

□ формирование подтверждения при завершении работы пользователя.

Разделим код на три файла, совместно использующие заголовочный файл cdapp_gnome.h. В исходных файлах функции создания окон и диалоговых окон — функции формирования интерфейса — отделены от функций обратного вызова (упражнения 16.11-16.14).

Упражнение 16.11. Файл cdapp_gnome.h

Сначала рассмотрим файл cdapp_gnome.h и функции, которые вы должны реализовать.

1. Включите в исходный текст программы заголовочные файлы среды GNOME и заголовочный файл для функций интерфейса, разработанного вами в главе 8. В данном примере программы используются файлы app_mysql.h и app_mysql.c из главы 8 и созданная там же база данных.

#include

#include "app_mysql.h"

2. В типе enumобозначены столбцы виджета GtkTreeView, который вы будете применять для отображения сведений о компакт-дисках и их дорожках.

enum {

COLUMN_TITLE,

COLUMN_ARTIST,

COLUMN_CATALOGUE,

N_COLUMNS

};

3. У вас есть три функции создания окна в файле interface.c.

GtkWidget *create_main_window();

GtkWidget *create_login_dialog();

GtkWidget *create_addcd_dialog();

4. Функции обратного вызова для пунктов меню, панели инструментов, кнопок диалогового окна и кнопки поиска находятся в файле callbacks.с.

/* Обратный вызов для выхода из приложения */

void quit_app(GtkWidget* window, gpointer data);

/* Обратный вызов для подтверждения завершения перед выходом */

gboolean delete_event_handler(GtkWidget* window, GdkEvent *event,

gpointer data);

/* Обратный вызов, связанный с сигналом отклика диалогового окна addcd */

void addcd_dialog_button_clicked(GtkDialog * dialog, gint response,

gpointer userdata);

/* Обратный вызов для кнопки Add CD меню и панели инструментов */

void on_addcd_activate(GtkWidget *widget, gpointer user_data);

/* Обратный вызов для кнопки меню About */

void on_about_activate(GtkWidget* widget, gpointer user_data);

/* Обратный вызов для кнопки поиска */

void on_search_button_clicked(GtkWidget *widget, gpointer userdata);

Упражнение 16.12. Файл interface.c

Первым рассмотрим файл interface.c, в котором определяются окна и диалоговые окна, применяемые в приложении.

1. Сначала несколько указателей виджетов, на которые вы ссылаетесь в файлах callbacks.c и main.c:

#include "app_gnome.h"

GtkWidget* treeview;

GtkWidget* appbar;

GtkWidget* artist_entry;

GtkWidget *title_entry;

GtkWidget *catalogue_entry;

GtkWidget *username_entry;

GtkWidget *password_entry;

2. app— глобальная переменная, указатель на главное окно:

static GtkWidget *арр;

3. Определите вспомогательную функцию, которая вставляет в контейнер виджет-метку с заданным текстом:

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);

}

4. Определения строки меню, использующие для удобства макросы GNOMEUIINFO:

static GnomeUIInfo filemenu[] = {

GNOMEUIINFO_MENU_NEW_ITEM("_New CD", NULL, on_addcd_activate, NULL),

GNOMEUIINFO_SEPARATOR,

GNOMEUIINFO_MENU_EXIT_ITEM(close_app, NULL),

GNOMEUIINFO_END

};

static GnomeUIInfo helpmenu[] = {

GNOMEUIINFO_MENU_ABOUT_ITEM(on_about_activate, NULL),

GNOMEUIINFO_END

};

static GnomeUIInfo menubar[] = {

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

Интервал:

Закладка:

Сделать

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

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


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

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

x