Нейл Мэтью - Основы программирования в 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 - читать книгу онлайн бесплатно, автор Нейл Мэтью
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

gtk_tree_store_append(store, &child, &iter);

Дополнительную информацию об объектах GtkTreeStoreи функциях объекта GtkListStoreсм. в документации API, а мы пойдем дальше и рассмотрим компонент Представление типа GtkTreeView.

Создание объекта GtkTreeView— сама простота: только передайте в конструктор в качестве параметра модель типа GtkTreeStoreили GtkListStore:

GtkWidget* view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));

Сейчас самое время настроить виджет для отображения данных именно так, как вы хотите. Для каждого столбца следует определить GtkCellRendererи источник данных. Можно выбрать, например, визуализацию только определенных столбцов данных или изменить порядок вывода столбцов.

GtkCellRenderer— это объект, отвечающий за прорисовку каждой ячейки на экране, и существует три подкласса, имеющие дело с текстовыми ячейками, ячейками пиксельной графики и ячейками кнопок-выключателей:

GtkCellRendererText;

GtkCellRendererPixBuf;

GtkCellRendererToggle.

В вашем Представлении будет применено текстовое представление ячеек, GtkCellRendererText.

GtkCellRenderer* renderer = gtk_cell_renderer_text_new();

gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view),

"This is the column title", renderer, "text", 0, NULL);

Вы создаете представление ячейки и передаете его в функцию вставки столбца. Эта функция позволяет сразу задать свойства GtkCellRendererText, передавая заканчивающиеся значением NULLпары "ключ/значение". В качестве параметров указаны представление дерева, номер столбца, заголовок столбца, представление ячейки и его свойства. В приведенном примере вы задаете атрибут "text", передав номер столбца источника данных. Для объекта GtkCellRendererTextопределено несколько других атрибутов, включая подчеркивание, шрифт, размер и т.д.

В упражнении 16.7, выполнив необходимые шаги, вы увидите, как это работает на практике.

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

Введите следующий программный код и назовите файл tree.с.

1. Примените тип enumдля обозначения столбцов, чтобы можно было ссылаться на них по именам. Общее количество столбцов удобно обозначить как N_COLUMNS:

#include

enum {

COLUMN_TITLE, COLUMN_ARTIST, COLUMN_CATALOGUE, N_COLUMNS

};

void closeApp(GtkWidget *window, gpointer data) {

gtk_main_quit();

}

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

GtkWidget *window;

GtkTreeStore *store;

GtkWidget *view;

GtkTreeIter parent_iter, child_iter;

GtkCellRenderer *renderer;

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(сloseApp), NULL);

2. Далее вы создаете модель дерева, передавая количество столбцов и тип каждого из них:

store = gtk_tree_store_new(N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING,

G_TYPE_STRING);

3. Следующий этап — вставка родительской и дочерней строк в дерево:

gtk_tree_store_append(store, &parent_iter, NULL);

gtk_tree_store_set(store, &parent_iter,

COLUMN_TITLE, "Dark Side of the Moon",

COLUMN_ARTIST, "Pink Floyd",

COLUMN_CATALOGUE, "B000024D4P", -1);

gtk_tree_store_append(store, &child_iter, &parent_iter);

gtk_tree_store_set (store, &child_iter,

COLUMN_TITLE, "Speak to Me", -1);

view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));

4. Наконец, добавьте столбцы в представление, задавая источники данных для них и заголовки:

renderer = gtk_cell_renderer_text_new();

gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view),

COLUMN_TITLE, "Title", renderer, "text",

COLUMN_TITLE, NULL);

gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view),

COLUMN_ARTIST, "Artist", renderer, "text",

COLUMN_ARTIST, NULL);

gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view),

COLUMN_CATALOGUE, "Catalogue", renderer, "text",

COLUMN_CATALOGUE, NULL);

gtk_container_add(GTK_CONTAINER(window), view);

gtk_widget_show_all(window); gtk_main();

return 0;

}

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

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

Виджеты GNOME

Комплект GTK+ спроектирован как нейтральный по отношению к рабочему столу, т.е. GTK+ не делает никаких допущений о том, что он выполняется в среде GNOME или даже в системе Linux. Причина заключается в том, что комплект инструментов GTK+ можно с относительной легкостью перенести для выполнения в ОС Windows или любой другой оконной системе. В результате GTK+ не хватает средств для связывания программы с рабочим столом, таких как средства сохранения настройки программы, отображение файлов помощи или программные апплеты (апплеты — это небольшие утилиты, выполняющиеся на краевых панелях (edge panels)).

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

Перед использованием библиотек GNOME их следует инициализировать при запуске ваших программ точно так же, как вы поступали с библиотеками GTK+. Вы вызываете функцию gnome_program_initтакже, как вы вызывали функцию gtk_initв чистых программах GTK+.

Эта функция принимает параметры app_idи арр_version, применяемые для описания вашей программы в среде GNOME, module_info, сообщающий GNOME о том, какой библиотечный модуль инициализировать, параметры командной строки и свойства приложения, заданные как NULL-терминированный список пар "имя/значение".

GnomeProgram* gnome_program_init(const char *app_id,

const char *app_version, const GnomeModuleInfо *module_infо,

int argc, char **argv, const char *first_property_name, ...);

Необязательный список свойств позволяет задать такие характеристики, как, например, каталог для поиска растровой графики.

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

Упражнение 16.8. Окно GNOME

Давайте рассмотрим программу, применяющую средства GNOME, в которой выполняется GNOME-замещение объекта GtkWindowвиджетом GnomeApp.

Введите эту программу и назовите ее gnome1.c:

#include

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

GtkWidget *app;

gnome_program_init("gnome1", "1.0", MODULE, argc, argv, NULL);

app = gnome_app_new("gnome1", "The Window Title");

gtk_widget_show(app);

gtk_main();

return 0;

}

Для компиляции вам необходимо включить заголовочные файлы GNOME, поэтому передайте библиотеки libgnomeui и libgnome в команду pkg-config:

$ gcc gnome1.с -о gnome1 `pkg-config --cflags --libs libgnome-2.0 libgnomeui-2.0`

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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