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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

GtkTreeIter iter;

gtk_tree_store_append(store, &iter, NULL);

Получив итератор, вы можете заполнять строку с помощью функции gtk_tree_store_set:

gtk_tree_store_set(store, &iter,

0, "Def Leppard",

1, 1987,

2, TRUE, -1);

Номер столбца и данные передаются парами, которые завершаются -1. Позже вы примените тип enum для того, чтобы сделать номера столбцов более информативными.

Для того чтобы добавить ветвь к данной строке (дочернюю строку), вам нужен только итератор для дочерней строки, который вы получаете, вызвав снова функцию gtk_tree_store_appendи указав на этот раз в качестве параметра строку верхнего уровня:

GtkTreeIter child;

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в соответствии с запросами к базе данных компакт-дисков.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x