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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

res1 = find_cds(search_text, cd_res);

sprintf(statusBar_text,

" Displaying %d result(s) for search string ' %s'",

res1, search_text);

statusBar()->message(statusBar_text);

i = 0;

list->clear();

8. Для каждого idизвлеките сведения о компакт-диске в виджет QListViewи информацию обо всех дорожках данного CD:

while (i < res1) {

res2 = get_cd(cd_res->cd_id[i], cd);

cd_item = new QListViewItem(list, cd->title, cd->artist_name,

cd->catalogue);

res3 = get_cd_tracks(cd_res->cd_id[i++], &ct);

j = 0;

/* Заполните дерево дорожками текущего компакт-диска */

while (j < res3) {

sprintf(track_title, " Track %d. ", j+1);

strcat(track_title, ct.track[j++]);

new QListViewItem(cd_item, track_title);

}

}

}

Рис 1713 9 Слот AddCdвызывается когда активизирован пункт меню или кнопка - фото 77

Рис. 17.13

9. Слот AddCdвызывается, когда активизирован пункт меню или кнопка панели инструментов addcd_action:

void MainWindow::AddCd()

AddCdDialog* dialog = new AddCdDialog(this);

dialog->show();

}

Результат показан на рис. 17.13.

AddCdDialog

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

1. Введите следующий программный код в файл AddCdDialog.h. Имейте в виду, что класс AddCdDialog— потомок KDialogBase, виджета диалогового окна в среде KDE.

#include

#include

class AddCdDialog : public KDialogBase {

Q_OBJECT

public:

AddCdDialog(QWidget* parent);

private:

QLineEdit* artist_entry, *title_entry, *catalogue_entry;

public slots:

void okClicked();

};

2. Далее следует файл AddCdDialog.cpp, в котором в слоте okClickedвызывается функция add_cdиз интерфейса MySQL:

#include "AddCdDialog.h"

#include "app_mysql.h"

#include

#include

AddCdDialog::AddCdDialog(QWidget* parent)

: KDialogBase(parent, "AddCD", false, "Add CD",

KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, true) {

QWidget *widget = new QWidget(this);

setMainWidget(widget);

QGridLayout *grid = new QGridLayout(widget, 3, 2, 10, 5, "grid");

grid->addWidget(new QLabel("Artist", widget, "artistlabel"), 0, 0, 0);

grid->addWidget(new QLabel("Title", widget, "titlelabel"), 1, 0, 0);

grid->addwidget(new QLabel("Catalogue", widget, "cataloguelabel"), 2, 0, 0);

artist_entry = new QLineEdit(widget, "artist_entry");

title_entry = new QLineEdit(widget, "titleentry");

catalogue_entry = new QLineEdit(widget, "catalogue_entry");

grid->addWidget(artist_entry, 0, 1, 0);

grid->addWidget(title_entry, 1, 1, 0);

grid->addWidget(catalogue_entry, 2, 1, 0);

connect(this, SIGNAL(okClicked()), this, SLOT(okClicked()));

}

void AddCdDialog::okClicked() {

char artist[200];

char title[200];

char catalogue[200];

int cd_id = 0;

strcpy(artist, artist_entry->text());

strcpy(title, title_entry->text());

strcpy(catalogue, catalogue_entry->text());

add_cd(artist, title, catalogue, &cd_id);

}

На рис. 17.14 показано работающее диалоговое окно AddCdDialog.

Рис 1714 LogonDialog Вы конечно же не сможете запрашивать базу данных - фото 78

Рис. 17.14

LogonDialog

Вы, конечно же, не сможете запрашивать базу данных без предварительной регистрации, поэтому вам необходимо простое диалоговое окно для ввода имени пользователя и пароля. Назовите этот класс LogonDialog. (Да, еще один пример остроумного и образного имени!)

1. Начнем с заголовочного файла. Введите приведенный далее программный код и назовите файл LogonDialog.h. Обратите внимание на то, что для разнообразия этот класс описан в данном случае как потомок класса QDialog, а не KDialogBase.

#include

#include

class LogonDialog : public QDialog {

Q_OBJECT

public:

LogonDialog(QWidget* parent = 0, const char *name = 0);

QString getUsername();

QString getPassword();

private:

QLineEdit *username_entry, *password_entry;

};

2. У вас есть более удобные методы для имени пользователя и пароля, чем инкапсуляция в файле LogonDialog.cpp вызова database_start. Далее приведен файл LogonDialog.cpp:

#include "LogonDialog.h"

#include "appmysql.h"

#include

#include

#include

LogonDialog::LogonDialog(QWidget *parent, const char *name):

QDialog(parent, name) {

QGridLayout *grid = new QGridLayout(this, 3, 2, 10, 5, "grid");

grid->addWidget(new QLabel("Username", this, "usernamelabel"), 0, 0, 0);

grid->addWidget(new QLabel("Password", this, "passwordlabel"), 1, 0, 0);

username_entry = new QLineEdit(this, "username entry");

password_entry = new QLineEdit(this, "password_entry");

password_entry->setEchoMode(QLineEdit::Password);

grid->addWidget(username_entry, 0, 1, 0);

grid->addWidget(passwordentry, 1, 1, 0);

QPushButton* button = new QPushButton("Ok", this, "button");

grid->addWidget(button, 2, 1, Qt::AlignRight);

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

Интервал:

Закладка:

Сделать

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

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


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

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

x