Читаем Основы программирования в Linux полностью

Ширина столбца задается в пикселах или, если пропущена, приравнивается к величине самого длинного элемента в столбце. В дальнейшем при вставке и удалении элементов ширина столбца автоматически меняется.

Данные вставляются в QListView с помощью объекта QListViewItem, представляющего строку данных. Вы должны лишь передать в конструктор объект QListView и элементы строки, и она добавится в конец представления:

QListViewItem *toplevel = new QListViewItem(view, "Left Data", "Right Data");

Первый параметр — либо объект QListView, как в данном случае, либо еще один объект типа QListViewItem. Если передается QListViewItem, строка создается как дочерняя по отношению к этому объекту QListViewItem. Таким образом, структура дерева формируется передачей объекта QListView для узлов верхнего уровня и затем последующих объектов типа QListViewItem для дочерних или подчиненных узлов.

Остальные параметры — данные каждого столбца, по умолчанию равные NULL, если не заданы.

Добавление дочернего узла — это просто вариант передачи в функцию указателя верхнего уровня. Если вы не добавляете последующие дочерние узлы в объект QListViewItem, нет необходимости сохранять возвращаемый указатель:

new QListViewItem(toplevel, "Left Data", "Right Data");

// Дочерний по отношению к верхнему уровню

В API QListViewItem можно найти методы обхода узлов дерева на случай корректировки конкретных строк:

#include

virtual void insertItem(QListviewitem* newChild);

virtual void setText(int column, const QString& text);

virtual QString text(int column) const;

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;

}

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

Перейти на страницу:

Похожие книги

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

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

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT