03 model->removeRows(listView->currentIndex.row, 1);
04 }
В конструкторе сигнал
01 QStringList TeamLeadersDialog::leaders const
02 {
03 return model->stringList;
04 }
Наконец, функция
Создать
Мы начнем с создания и настройки модели и представления в конструкторе диалогового окна Просмотр каталога (Directory Viewer).
01 DirectoryViewer::DirectoryViewer(QWidget *parent)
02 : QDialog(parent)
03 {
04 model = new QDirModel;
05 model->setReadOnly(false);
06 model->setSorting(QDir::DirsFirst | QDir::IgnoreCase | QDir::Name);
07 treeView = new QTreeView;
08 treeView->setModel(model);
09 treeView->header->setStretchLastSection(true);
10 treeView->header->setSortIndicator(0, Qt::AscendingOrder);
11 treeView->header->setSortIndicatorShown(true);
12 treeView->header->setClickable(true);
13 QModelIndex index = model->index(QDir::currentPath);
14 treeView->expand(index);
15 treeView->scrollTo(index);
16 treeView->resizeColumnToContents(0);
17 …
18 }
После создания модели мы обеспечиваем возможность ее редактирования и устанавливаем различные начальные атрибуты упорядочивания. Затем мы создаем объект
Во фрагменте конструктора, который здесь не показан, мы связываем кнопки Create Directory (создать каталог) и Remove (удалить) со слотами, выполняющими соответствующие действия. Нам не нужно иметь кнопку Rename (переименовать), поскольку пользователи могут переименовывать элементы каталога по месту, нажимая клавишу F2 и осуществляя ввод символов с клавиатуры.
01 voidDirectoryViewer::createDirectory
02 {
03 QModelIndex index;
04 if (!index.isValid)
05 return;
06 QString dirName = QInputDialog::getText(this,
07 tr("Create Directory"), tr("Directory name"));
08 if (!dirName.isEmpty) {
09 if (!model->mkdir(index,dirName).isValid)
10 QMessageBox::information(this,