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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

GNOMEUIINFO_MENU_FILE_TREE(filemenu),

GNOMEUIINFO_MENU_HELP_TREE(helpmenu),

GNOMEUIINFO_END

};

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

GtkWidget *create_main_window() {

GtkWidget* toolbar;

GtkWidget* vbox;

GtkWidget* hbox;

GtkWidget* label;

GtkWidget* entry;

GtkWidget *search_button;

GtkWidget* scrolledwindow;

GtkCellRenderer *renderer;

app = gnome_app_new("GnomeCD", "CD Database");

gtk_window_set_position(GTK_WINDOW(app), GTK_WIN_POS_CENTER);

gtk_window_set_defeult_size(GTK_WINDOW(app ), 540, 480);

gnome_app_create_menus(GNOME_APP(app), menubar);

6. Создайте панель инструментов с помощью стандартных пиктограмм GTK+ и свяжите с ней функции обратного вызова:

toolbar = gtk_toolbar_new();

gnome_app_add_toolbar(GNOME_APP(app), GTK_TOOLBAR(toolbar),

"toolbar", BONOBO_DOCK_ITEM_BEH_EXCLUSIVE,

BONOBO_DOCK_TOP, 1, 0, 0);

gtk_container_set_border_width(GTK_CONTAINER(toolbar), 1);

gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), "gtk-add", "Add new CD",

NULL, GTK_SIGNAL_FUNC(on_addcd_activate), NULL, -1);

gtk_toolbar_insert_space(GTK_TOOLBAR(toolbar), 1);

gtk_toolbar_insert_stock(GTK_TOOLBAR(toolbar), "gtk-quit",

"Quit the Application", NULL, GTK_SIGNAL_FUNC(on_quit_activate), NULL, -1);

7. Затем вы создаете виджеты, используемые для поиска компакт-диска:

label = gtk_label_new("Search String:");

entry = gtk_entry_new();

search_button = gtk_button_new_with_label("Search");

8. Окно gtk_scrolled_windowпредоставляет полосы прокрутки, позволяя виджету (в данном случае GtkTreeView) превышать размеры окна:

scrolledwindow = gtk_scrolled_window_new(NULL, NULL);

gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow),

GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

9. Далее скомпонуйте интерфейс, применяя стандартным способом виджеты-контейнеры:

vbox = gtk_vbox_new(FALSE, 0);

hbox = gtk_hbox_new(FALSE, 0);

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

gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 6);

gtk_box_pack_start(GTK_BOX(hbox), search_button, FALSE, FALSE, 5);

gtk_box_pack_start(GTK_BOX(vbox), scrolledwindow, TRUE, TRUE, 0);

10. Затем создайте виджет GtkTreeView, вставьте три столбца и поместите его в окно GtkScrolledWindow:

treeview = gtk_tree_view_new();

renderer = gtk_cell_renderer_text_new();

gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),

COLUMN_TITLE, "Title", renderer, "text", COLUMN_TITLE, NULL);

gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview),

COLUMN_ARTIST, "Artist", renderer, "text", CQLUMN_ARTIST, NULL);

gtk_tree_view_insert_column_with_attrihutes(GTK_TREE_VIEW(treeview),

COLUMN_CATALOGUE, "Catalogue", renderer, "text", COLUMN_CATALOGUE, NULL);

gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview),

COLUMN_TITLE);

gtk_container_add(GTK_CONTAINER(scrolledwindow), treeview);

11. В заключение задайте содержимое главного окна, вставьте строку состояния GnomeAppи подсоедините нужные обратные вызовы:

gnome_app_set_contents(GNOMEAPP(app), vbox);

appbar = gnome_appbar_new(FALSE, TRUE, GNOME_PREFERENCES_NEVER);

gnome_app_set_statusbar(GNOME_APP(app), appbar);

gnome_app_install_menu_hints(GNOME_APP(app), menubar);

g_signal_connect(GTK_OBJECT(search_button), "clicked",

GTK_SIGNAL_FUNC(on_search_button_clicked), entry);

g_signal_connect(GTK_OBJECT(app), "delete_event",

GTK_SIGNAL_FUNC(delete_event_handler), NULL);

g_signal_connect(GTK_OBJECT(app), "destroy",

GTK_SIGNAL_FUNC(quit_app), NULL);

return app;

}

12. Следующая функция создает простое диалоговое окно, позволяющее добавлять новый компакт-диск в базу данных. Оно состоит из полей ввода для исполнителя, названия и полей каталога, а также кнопок OKи Cancel:

GtkWidget *create_addcd_dialog() {

artist_entry = gtk_entry_new();

title_entry = gtk_entry_new();

catalogue_entry = gtk_entry_new();

GtkWidget* dialog = gtk_dialog_new_with_buttons("Add CD",

app,

GTK_DIALOG_DESTROY_WITH_PARENT,

GTK_STOCK_OK,

GTK_RESPONSE_ACCEPT,

GTK_STOCK_CANCEL,

GTK_RESPONSE_REJECT,

NULL);

add_widget_with_label(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),

"Artist", artist_entry);

add_widget_with_label(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),

"Title", title_entry);

add_widget_with_label(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),

"Catalogue", catalogue_entry);

g_signal_connect(GTK_OBJECT(dialog), "response",

GTK_SIGNAL_FUNC(addcd_dialog_button_clicked), NULL);

return dialog;

}

13. База данных требует регистрации пользователя перед выполнением запросов к ней, поэтому данная функция создает диалоговое окно для ввода имени пользователя и пароля:

GtkWidget *create_login_dialog() {

GtkWidget* dialog = gtk_dialog_new_with_buttons("Database Login",

app, GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,

GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);

username_entry = gtk_entry_new();

password_entry = gtk_entry_new();

gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE);

add_widget_with_label(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),

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

Интервал:

Закладка:

Сделать

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

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


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

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

x