Читать книгу 📗 "Основы программирования в Linux - Мэтью Нейл"
QListView
Списки и деревья в комплекте Qt формируются виджетом
QListViewВ отличие от виджета GTK+
ListViewQListViewВ виджете
QListViewQCheckBoxСоздается виджет
QListViewQListView *view = new QListView(parent, "name");Для задания заголовков столбцов используйте соответствующим образом названный метод
addColumnview->addColumn("Left Column", width1); // фиксированной шириныview->addColumn("Right Column"); // с автоматически задаваемым размеромШирина столбца задается в пикселах или, если пропущена, приравнивается к величине самого длинного элемента в столбце. В дальнейшем при вставке и удалении элементов ширина столбца автоматически меняется.
Данные вставляются в
QListViewQListViewItemQListViewQListViewItem *toplevel = new QListViewItem(view, "Left Data", "Right Data");Первый параметр — либо объект
QListViewQListViewItemQListViewItemQListViewItemQListViewQListViewItemОстальные параметры — данные каждого столбца, по умолчанию равные
NULLДобавление дочернего узла — это просто вариант передачи в функцию указателя верхнего уровня. Если вы не добавляете последующие дочерние узлы в объект
QListViewItemnew QListViewItem(toplevel, "Left Data", "Right Data");// Дочерний по отношению к верхнему уровнюВ API
QListViewItem<b>#include <qlistview.h></b><b>virtual void insertItem(QListviewitem* newChild);</b><b>virtual void setText(int column, const QString& text);</b><b>virtual QString text(int column) const;</b><b>QListViewItem* firstChild() const;</b><b>QListViewItem* nextSibling() const;</b><b>QListViewItem* parent() const;</b><b>QListViewItem* itemAbove();</b><b>QListViewItem *itemBelow();</b>Получить первую строку в дереве можно, вызвав метод
firstChildQListViewfirstChildnextSiblingПриведенный далее фрагмент программного кода выводит первый столбец всех узлов верхнего уровня:
QListViewItem *child = view->firstChild();while(child) { cout << myChild->text(1) << "n"; myChild = myChild->nextSibling();}Все подробности, касающиеся
QListViewQListViewItemQCheckListViewВыполните упражнение 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);