Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
QListView
Списки и деревья в комплекте Qt формируются виджетом
QListView
В отличие от виджета GTK+
ListView
QListView
В виджете
QListView
QCheckBox
Создается виджет
QListView
QListView *view = new QListView(parent, "name");
Для задания заголовков столбцов используйте соответствующим образом названный метод
addColumn
view->addColumn("Left Column", width1); // фиксированной ширины
view->addColumn("Right Column"); // с автоматически задаваемым размером
Ширина столбца задается в пикселах или, если пропущена, приравнивается к величине самого длинного элемента в столбце. В дальнейшем при вставке и удалении элементов ширина столбца автоматически меняется.
Данные вставляются в
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
<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>
Получить первую строку в дереве можно, вызвав метод
firstChild
QListView
firstChild
nextSibling
Приведенный далее фрагмент программного кода выводит первый столбец всех узлов верхнего уровня:
QListViewItem *child = view->firstChild();
while(child) {
cout << myChild->text(1) << "n";
myChild = myChild->nextSibling();
}
Все подробности, касающиеся
QListView
QListViewItem
QCheckListView
Выполните упражнение 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);