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

Интервал:

Закладка:

Сделать

QListViewItem* firstChild() const;

QListViewItem* nextSibling() const;

QListViewItem* parent() const;

QListViewItem* itemAbove();

QListViewItem *itemBelow();

Получить первую строку в дереве можно, вызвав метод firstChildдля самого объекта QListView. Затем можно многократно вызывать firstChild и nextSiblingдля возврата фрагментов или целого дерева.

Приведенный далее фрагмент программного кода выводит первый столбец всех узлов верхнего уровня:

QListViewItem *child = view->firstChild();

while(child) {

cout << myChild->text(1) << "\n";

myChild = myChild->nextSibling();

}

Все подробности, касающиеся QListView, QListViewItemи QCheckListView, см. в документации API комплекта Qt.

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

Упражнение 17.7 Виджет QListView

В этом упражнении вы соберете все вместе и напишете короткий пример использования виджета QListView.

Давайте для краткости пропустим заголовочный файл и рассмотрим реализацию класса, файл ListView.cpp.

#include "Listview.moc"

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

QMainWindow(parent, name) {

listview = new QListView(this, "listview1");

listview->addColumn("Artist");

listview->addColumn("Title");

listview->addColumn("Catalogue");

listview->setRootIsDecorated(TRUE);

QListViewItem* toplevel = new QListViewItem(listview, "Avril Lavigne",

"Let Go", "AVCD01");

new QListViewItem(toplevel, "Complicated");

new QListViewItem(toplevel, "Sk8er Boi");

setCentralWidget(listview);

}

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

QApplication app(argc, argv);

ListView *window = new ListView();

app.setMainWidget(window);

window->show();

return app.exec();

}

Как это работает

Виджет QListViewкажется сложным, потому что он действует и как список элементов, и как дерево элементов. В вашем программном коде необходимо создать экземпляры QListViewItemдля каждого элемента, включаемого вами в список. У каждого экземпляра типа QListViewItemесть родитель. Эти элементы с самим виджетом в качестве родителя отображаются как элементы верхнего уровня. Элементы с другим элементом типа QListViewItemв качестве родителя выводятся на экран как дочерние элементы. В этом примере показаны экземпляры QListViewItemсо всего одним уровнем глубины, но можно создавать и деревья элементов с гораздо большей глубиной.

После компиляции и выполнения примера ListView вы увидите виджет QListViewв действии, как показано на рис. 17.7.

Обратите внимание на то, как дочерние строки почтительно отступают от своих "родителей". Знаки "плюс" и "минус", указывающие на наличие скрытых или сворачивающихся строк, не представлены по умолчанию; в этом примере они задаются с помощью setRootIsDecorated.

Рис 177 Диалоговые окна До сих пор вы создавали подклассы QMainWindowдля - фото 71

Рис. 17.7

Диалоговые окна

До сих пор вы создавали подклассы QMainWindowдля построения своих интерфейсов. Объекты QMainWindowпредназначены для создания главного окна в вашем приложении, но для кратковременных диалоговых окон следует рассмотреть виджет QDialog.

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

Наряду с обычными модальными и немодальными (или безмодальными на языке Qt) диалоговыми окнами комплект Qt также предлагает полумодальное диалоговое окно. В следующем перечне приведены отличия модальных и немодальных диалоговых окон, в него также включены полумодальные окна.

□ Модальное диалоговое окно блокирует ввод во все другие окна, чтобы заставить пользователя дать ответ в диалоговом окне. Модальные диалоговые окна полезны для захвата немедленного ответа пользователя и отображения важных сообщений об ошибках.

□ Немодальное диалоговое окно — неблокирующее окно, которое действует обычно наряду с другими окнами приложения. Немодальные диалоговые окна удобны для окон поиска или ввода, в которых вы сможете, например, копировать и вставлять значения в главное окно и из него.

□ Полумодальное диалоговое окно — это модальное окно, не имеющее своего цикла событий. Это позволяет возвращать управление приложению, но сохранять блокировку ввода для других окон. Полумодальные окна бывают полезны в редких случаях, когда у вас есть индикатор выполнения процесса важной, требующей значительного времени операции, и вы хотите дать пользователю возможность отменить ее при необходимости. Поскольку у такого окна нет собственного цикла событий, для его обновления вы должны периодически вызывать метод QApplication::processEvents.

QDialog

QDialog— базовый класс диалоговых окон в Qt, предоставляющий методы execи showдля обработки модальных и немодальных диалоговых окон, у него есть встроенный класс QLayout, который можно использовать, и несколько сигналов и слотов, полезных для формирования откликов на нажатие кнопки.

Обычно вы будете создавать для своих диалоговых окон класс-потомок QDialogи вставлять в него виджеты для создания интерфейса диалогового окна:

#include

MyDialog::MyDialog(QWidget *parent, const char *name) : QDialog(parent, name) {

QHBoxLayout *hbox = new QHBoxLayout(this);

hbox->addWidget(new Qlabel("Enter your name"));

hbox->addWidget(new QLineEdit());

hbox->addWidget(ok_pushbutton);

hbox->addWidget(cancel_pushbutton);

connect(ok_pushbutton, SIGNAL(clicked()), this, SLOT(accept()));

connect(cancel_pushbutton, SIGNAL(clicked()), this, SLOT(reject()));

}

В отличие от виджета типа QMainWindowвы можете задать объект MyDialogкак родительский для своего объекта QLayoutбез создания пустого QWidgetв качестве родительского.

Примечание

Имейте в виду, что в этом примере пропущен программный код для создания виджетов ok_pushbuttonи cancel_pushbutton.

У объекта QDialogесть два слота — acceptи reject, которые применяются для обозначения результата, полученного в диалоговом окне. Этот результат возвращается методом exec. Как правило, вы будете связывать кнопки OKи Cancelсо слотами, как в MyDialog.

Модальные диалоговые окна

Для применения диалогового окна как модального вы вызываете метод exec, который открывает диалоговое окно и возвращает QDialog::Acceptedили QDialog::Rejectedв зависимости от того, какой слот был активизирован:

MyDialog* dialog = new MyDialog(this, "mydialog");

if (dialog->exec() == QDialog::Accepted) {

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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