📄 qtreewidget.cpp
字号:
d->model()->endRemoveRows(); return item; } return 0;}/*! Returns the index of the given top-level \a item, or -1 if the item cannot be found. \sa sortItems(), topLevelItemCount() */int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item){ Q_D(QTreeWidget); return d->model()->tree.indexOf(item);}/*! \since 4.1 Inserts the list of \a items at \a index in the top level in the view. \sa addTopLevelItems()*/void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem*> &items){ Q_D(QTreeWidget); for (int n = 0; n < items.count(); ++n) { QTreeWidgetItem *item = items.at(n); Q_ASSERT(!item->view || !item->model || !item->par); QStack<QTreeWidgetItem*> stack; stack.push(item); while (!stack.isEmpty()) { QTreeWidgetItem *i = stack.pop(); i->view = this; i->model = d->model(); for (int c = 0; c < i->children.count(); ++c) stack.push(i->children.at(c)); } } d->model()->insertListInTopLevel(index, items);}/*! Appends the list of \a items as a top-level items in the widget. \sa insertTopLevelItems()*/void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem*> &items){ insertTopLevelItems(topLevelItemCount(), items);}/*! Returns the item used for the tree widget's header. \sa setHeaderItem()*/QTreeWidgetItem *QTreeWidget::headerItem() const{ Q_D(const QTreeWidget); return d->model()->header;}/*! Sets the header \a item for the tree widget. The label for each column in the header is supplied by the corresponding label in the item. \sa headerItem(), setHeaderLabels()*/void QTreeWidget::setHeaderItem(QTreeWidgetItem *item){ Q_D(QTreeWidget); // FIXME When we by default autogenerate the numbers when NULL then accept this Q_ASSERT(item); delete d->model()->header; item->model = d->model(); item->view = this; d->model()->header = item;}/*! Adds a column in the header for each item in the \a labels list, and sets the label for each column. Note that setHeaderLabels wont remove existing columns. \sa setHeaderItem()*/void QTreeWidget::setHeaderLabels(const QStringList &labels){ Q_D(QTreeWidget); if (columnCount() < labels.count()) setColumnCount(labels.count()); QTreeModel *model = d->model(); QTreeWidgetItem *item = model->header; for (int i = 0; i < labels.count(); ++i) item->setText(i, labels.at(i));}/*! Returns the current item in the tree widget. \sa setCurrentItem(), currentItemChanged()*/QTreeWidgetItem *QTreeWidget::currentItem() const{ Q_D(const QTreeWidget); return d->model()->item(currentIndex());}/*! \since 4.1 Returns the current column in the tree widget. \sa setCurrentItem(), columnCount()*/int QTreeWidget::currentColumn() const{ return currentIndex().column();}/*! Sets the current \a item in the tree widget. Depending on the current selection mode, the item may also be selected. \sa currentItem(), currentItemChanged()*/void QTreeWidget::setCurrentItem(QTreeWidgetItem *item){ setCurrentItem(item, 0);}/*! \since 4.1 Sets the current \a item in the tree widget and the curernt column to \a column. \sa currentItem()*/void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column){ Q_D(const QTreeWidget); if (item) setCurrentIndex(d->model()->index(item, column)); else setCurrentIndex(QModelIndex());}/*! Returns a pointer to the item at the coordinates \a p. \sa visualItemRect()*/QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const{ Q_D(const QTreeWidget); return d->model()->item(indexAt(p));}/*! \fn QTreeWidgetItem *QTreeWidget::itemAt(int x, int y) const \overload Returns a pointer to the item at the coordinates (\a x, \a y).*//*! Returns the rectangle on the viewport occupied by the item at \a item. \sa itemAt()*/QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const{ Q_ASSERT(item); Q_D(const QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); Q_ASSERT(index.isValid()); return visualRect(index);}/*! \since 4.1 Returns the column used to sort the contents of the widget. \sa sortItems()*/int QTreeWidget::sortColumn() const{ return header()->sortIndicatorSection();}/*! Sorts the items in the widget in the specified \a order by the values in the given \a column. \sa sortColumn()*/void QTreeWidget::sortItems(int column, Qt::SortOrder order){ Q_D(QTreeWidget); header()->setSortIndicator(column, order); d->model()->sort(column, order);}/*! If \a enable is true, the items in the widget will be sorted if the user clicks on a header section; otherwise sorting by clicking on the header section is disabled. \sa sortItems(), sortColumn()*/void QTreeWidget::setSortingEnabled(bool enable){ Q_D(QTreeWidget); d->sortingEnabled = enable; if (header()->isSortIndicatorShown() != enable) { header()->setSortIndicatorShown(enable); header()->setClickable(enable); }}/*! Returns true if sorting is enabled; otherwise returns false. Sorting is enabled when the user clicks on a header section.*/bool QTreeWidget::isSortingEnabled() const{ Q_D(const QTreeWidget); return d->sortingEnabled;}/*! Starts editing the \a item in the given \a column if it is editable.*/void QTreeWidget::editItem(QTreeWidgetItem *item, int column){ Q_ASSERT(item); Q_D(QTreeWidget); edit(d->model()->index(item, column));}/*! Opens a persistent editor for the \a item in the given \a column. \sa closePersistentEditor()*/void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column){ Q_ASSERT(item); Q_D(QTreeWidget); QModelIndex index = d->model()->index(item, column); QAbstractItemView::openPersistentEditor(index);}/*! Closes the persistent editor for the \a item in the given \a column. This function has no effect if no persistent editor is open for this combination of item and column. \sa openPersistentEditor()*/void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column){ Q_ASSERT(item); Q_D(QTreeWidget); QModelIndex index = d->model()->index(item, column); QAbstractItemView::closePersistentEditor(index);}/*! \since 4.1 Returns the widget displayed in the cell specified by \a item and the given \a column.*/QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const{ Q_ASSERT(item); Q_D(const QTreeWidget); QModelIndex index = d->model()->index(item, column); return QAbstractItemView::indexWidget(index);}/*! \since 4.1 Sets the \a widget to be displayed in the cell specified by \a item and the given \a column. This function should only be used to display static content in the place of a tree widget item. If you want to display custom dynamic content or implement a custom editor widget, use QTreeView and subclass QItemDelegate instead. \sa {Delegate Classes}*/void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget){ Q_ASSERT(item); Q_ASSERT(widget); Q_D(QTreeWidget); QModelIndex index = d->model()->index(item, column); QAbstractItemView::setIndexWidget(index, widget);}/*! Returns true if the \a item is selected; otherwise returns false. \sa itemSelectionChanged()*/bool QTreeWidget::isItemSelected(const QTreeWidgetItem *item) const{ Q_D(const QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); return selectionModel()->isSelected(index);}/*! If \a select is true, the given \a item is selected; otherwise it is deselected. \sa itemSelectionChanged()*/void QTreeWidget::setItemSelected(const QTreeWidgetItem *item, bool select){ Q_D(QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); selectionModel()->select(index, (select ? QItemSelectionModel::Select : QItemSelectionModel::Deselect) |QItemSelectionModel::Rows);}/*! Returns a list of all selected non-hidden items. \sa itemSelectionChanged()*/QList<QTreeWidgetItem*> QTreeWidget::selectedItems() const{ Q_D(const QTreeWidget); QModelIndexList indexes = selectionModel()->selectedIndexes(); QList<QTreeWidgetItem*> items; for (int i = 0; i < indexes.count(); ++i) { QTreeWidgetItem *item = d->model()->item(indexes.at(i)); if (!items.contains(item)) // ### slow, optimize later items.append(item); } return items;}/*! Returns a list of items that match the given \a text, using the given \a flags, in the given \a column.*/QList<QTreeWidgetItem*> QTreeWidget::findItems(const QString &text, Qt::MatchFlags flags, int column) const{ Q_D(const QTreeWidget); QModelIndexList indexes = d->model()->match(model()->index(0, column, QModelIndex()), Qt::DisplayRole, text, -1, flags); QList<QTreeWidgetItem*> items; for (int i = 0; i < indexes.size(); ++i) items.append(d->model()->item(indexes.at(i))); return items;}/*! Returns true if the \a item is explicitly hidden, otherwise returns false.*/bool QTreeWidget::isItemHidden(const QTreeWidgetItem *item) const{ Q_D(const QTreeWidget); if (item == headerItem()) return header()->isHidden(); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); QModelIndex parent = index.parent(); return isRowHidden(index.row(), parent);}/*! Hides the given \a item if \a hide is true; otherwise shows the item. \sa itemChanged()*/void QTreeWidget::setItemHidden(const QTreeWidgetItem *item, bool hide){ Q_D(QTreeWidget); if (item == headerItem()) { header()->setHidden(hide); } else { QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); QModelIndex parent = index.parent(); setRowHidden(index.row(), parent, hide); }}/*! Returns true if the given \a item is open; otherwise returns false. \sa itemExpanded()*/bool QTreeWidget::isItemExpanded(const QTreeWidgetItem *item) const{ Q_ASSERT(item); Q_D(const QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); return isExpanded(index);}/*! Sets the item referred to by \a item to either closed or opened, depending on the value of \a expand. \sa expandItem(), collapseItem(), itemExpanded()*/void QTreeWidget::setItemExpanded(const QTreeWidgetItem *item, bool expand){ Q_ASSERT(item); Q_D(QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); Q_ASSERT(index.isValid()); setExpanded(index, expand);}/*! Ensures that the \a item is visible, scrolling the view if necessary using the specified \a hint. \sa currentItem(), itemAt(), topLevelItem()*/void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, ScrollHint hint){ Q_ASSERT(item); Q_D(QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); Q_ASSERT(index.isValid()); QTreeView::scrollTo(index, hint);}/*! Expands the \a item. This causes the tree containing the item's children to be expanded. \sa collapseItem(), currentItem(), itemAt(), topLevelItem(), itemExpanded()*/void QTreeWidget::expandItem(const QTreeWidgetItem *item){ Q_ASSERT(item); Q_D(QTreeWidget); QModelIndex index = d->model()->index(const_cast<QTreeWidgetItem*>(item), 0); expand(index);}/*! Closes the \a item. This causes the tree containing the item's children to be collapsed. \sa expandItem(), currentItem(), itemAt(), topLevelItem()*/void QTreeWidget::co
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -