Spec-Zone.ru › Qt 5.14

Класс QTableWidget

Класс QTableWidget предоставляет вид представления таблицы на основе элементов с моделью по умолчанию. Подробнее...

Заголовок: #include <QTableWidget>
qmake: QT += widgets
Наследует: QTableView
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Свойства

  • columnCount : int
  • rowCount : int

Открытые функции

QTableWidget(int rows, int columns, QWidget *parent = nullptr)
QTableWidget(QWidget *parent = nullptr)
virtual ~QTableWidget()
QWidget * cellWidget(int row, int column) const
void closePersistentEditor(QTableWidgetItem *item)
int column(const QTableWidgetItem *item) const
int columnCount() const
int currentColumn() const
QTableWidgetItem * currentItem() const
int currentRow() const
void editItem(QTableWidgetItem *item)
QList<QTableWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags) const
QTableWidgetItem * horizontalHeaderItem(int column) const
bool isPersistentEditorOpen(QTableWidgetItem *item) const
QTableWidgetItem * item(int row, int column) const
QTableWidgetItem * itemAt(const QPoint &point) const
QTableWidgetItem * itemAt(int ax, int ay) const
const QTableWidgetItem * itemPrototype() const
void openPersistentEditor(QTableWidgetItem *item)
void removeCellWidget(int row, int column)
int row(const QTableWidgetItem *item) const
int rowCount() const
QList<QTableWidgetItem *> selectedItems() const
QList<QTableWidgetSelectionRange> selectedRanges() const
void setCellWidget(int row, int column, QWidget *widget)
void setColumnCount(int columns)
void setCurrentCell(int row, int column)
void setCurrentCell(int row, int column, QItemSelectionModel::SelectionFlags command)
void setCurrentItem(QTableWidgetItem *item)
void setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command)
void setHorizontalHeaderItem(int column, QTableWidgetItem *item)
void setHorizontalHeaderLabels(const QStringList &labels)
void setItem(int row, int column, QTableWidgetItem *item)
void setItemPrototype(const QTableWidgetItem *item)
void setRangeSelected(const QTableWidgetSelectionRange &range, bool select)
void setRowCount(int rows)
void setVerticalHeaderItem(int row, QTableWidgetItem *item)
void setVerticalHeaderLabels(const QStringList &labels)
void sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)
QTableWidgetItem * takeHorizontalHeaderItem(int column)
QTableWidgetItem * takeItem(int row, int column)
QTableWidgetItem * takeVerticalHeaderItem(int row)
QTableWidgetItem * verticalHeaderItem(int row) const
int visualColumn(int logicalColumn) const
QRect visualItemRect(const QTableWidgetItem *item) const
int visualRow(int logicalRow) const

Открытые слоты

void clear()
void clearContents()
void insertColumn(int column)
void insertRow(int row)
void removeColumn(int column)
void removeRow(int row)
void scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Сигналы

void cellActivated(int row, int column)
void cellChanged(int row, int column)
void cellClicked(int row, int column)
void cellDoubleClicked(int row, int column)
void cellEntered(int row, int column)
void cellPressed(int row, int column)
void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
void currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
void itemActivated(QTableWidgetItem *item)
void itemChanged(QTableWidgetItem *item)
void itemClicked(QTableWidgetItem *item)
void itemDoubleClicked(QTableWidgetItem *item)
void itemEntered(QTableWidgetItem *item)
void itemPressed(QTableWidgetItem *item)
void itemSelectionChanged()

Защищенные функции

virtual bool dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action)
QModelIndex indexFromItem(const QTableWidgetItem *item) const
QTableWidgetItem * itemFromIndex(const QModelIndex &index) const
QList<QTableWidgetItem *> items(const QMimeData *data) const
virtual QMimeData * mimeData(const QList<QTableWidgetItem *> items) const
virtual QStringList mimeTypes() const
virtual Qt::DropActions supportedDropActions() const

Переопределённые защищённые функции

virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override

Подробное описание

Виджеты таблиц предоставляют стандартные средства отображения таблиц для приложений. Элементы в QTableWidget предоставляются QTableWidgetItem.

Если вам нужна таблица, использующая вашу собственную модель данных, вы должны использовать QTableView, а не этот класс.

Виджеты таблиц могут быть созданы с требуемым количеством строк и столбцов:

    tableWidget = new QTableWidget(12, 3, this);

В качестве альтернативы, таблицы могут быть созданы без заданного размера и изменены позже:

    tableWidget = new QTableWidget(this);
    tableWidget->setRowCount(10);
    tableWidget->setColumnCount(5);

Элементы создаются вне таблицы (без родительского виджета) и вставляются в таблицу с помощью setItem():

    QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(
        (row+1)*(column+1)));
    tableWidget->setItem(row, column, newItem);

Если вы хотите включить сортировку в вашем виджете таблицы, сделайте это после заполнения её элементами, иначе сортировка может повлиять на порядок вставки (см. setItem() для получения подробностей).

Таблицы могут иметь заголовки как по горизонтали, так и по вертикали. Самый простой способ создания заголовков — передать список строк функциям setHorizontalHeaderLabels() и setVerticalHeaderLabels(). Они обеспечат простые текстовые заголовки для столбцов и строк таблицы. Более сложные заголовки можно создать из существующих элементов таблицы, которые обычно строятся вне таблицы. Например, мы можем создать элемент таблицы с иконкой и выровненным текстом и использовать его в качестве заголовка определенного столбца:

    QTableWidgetItem *cubesHeaderItem = new QTableWidgetItem(tr("Cubes"));
    cubesHeaderItem->setIcon(QIcon(QPixmap(":/Images/cubed.png")));
    cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);

Количество строк в таблице можно найти с помощью rowCount(), а количество столбцов — с помощью columnCount(). Таблицу можно очистить с помощью функции clear().

См. также QTableWidgetItem, QTableView и Модельно-видовое программирование.

Документация по свойствам

columnCount : int

Это свойство содержит количество столбцов в таблице

По умолчанию для таблицы, созданной без указания количества строк и столбцов, это свойство содержит значение 0.

Функции доступа:

int columnCount() const
void setColumnCount(int columns)

rowCount : int

Это свойство содержит количество строк в таблице

По умолчанию для таблицы, созданной без указания количества строк и столбцов, это свойство содержит значение 0.

Функции доступа:

int rowCount() const
void setRowCount(int rows)

Документация по функциям-членам

QTableWidget::QTableWidget(int rows, int columns, QWidget *parent = nullptr)

Создаёт новый вид таблицы с заданным количеством rows и columns и с указанным parent.

QTableWidget::QTableWidget(QWidget *parent = nullptr)

Создаёт новый вид таблицы с заданным parent.

[signal] void QTableWidget::cellActivated(int row, int column)

Этот сигнал излучается, когда ячейка, заданная row и column, была активирована

Эта функция была добавлена в Qt 4.1.

[signal] void QTableWidget::cellChanged(int row, int column)

Этот сигнал излучается всякий раз, когда данные элемента в ячейке, заданной row и column, изменяются.

Эта функция была добавлена в Qt 4.1.

[signal] void QTableWidget::cellClicked(int row, int column)

Этот сигнал испускается всякий раз, когда в таблице щелкают по ячейке. Указанные значения row и column соответствуют ячейке, по которой был клик.

Эта функция была добавлена в Qt 4.1.

[signal] void QTableWidget::cellDoubleClicked(int row, int column)

Этот сигнал испускается всякий раз, когда в таблице дважды щелкают по ячейке. Указанные значения row и column соответствуют ячейке, по которой было двойное нажатие.

Эта функция была добавлена в Qt 4.1.

[signal] void QTableWidget::cellEntered(int row, int column)

Этот сигнал испускается, когда курсор мыши входит в ячейку. Ячейка задаётся значениями row и column.

Этот сигнал испускается только тогда, когда mouseTracking включен или когда нажата кнопка мыши во время перемещения в элемент.

Эта функция была добавлена в Qt 4.1.

[signal] void QTableWidget::cellPressed(int row, int column)

Этот сигнал испускается всякий раз, когда в таблице нажимают на ячейку. Указанные значения row и column соответствуют ячейке, на которую было нажато.

Эта функция была добавлена в Qt 4.1.

[slot] void QTableWidget::clear()

Удаляет все элементы в представлении. Это также удалит все выделения и заголовки. Если вы не хотите удалять заголовки, используйте QTableWidget::clearContents(). Размеры таблицы остаются неизменными.

[slot] void QTableWidget::clearContents()

Удаляет все элементы, не являющиеся заголовками, из представления. Это также удалит все выделения. Размеры таблицы остаются неизменными.

Эта функция была добавлена в Qt 4.2.

[signal] void QTableWidget::currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)

Этот сигнал испускается всякий раз, когда текущая ячейка меняется. Ячейка, заданная значениями previousRow и previousColumn, — это ячейка, которая ранее имела фокус; ячейка, заданная значениями currentRow и currentColumn, — это новая текущая ячейка.

Эта функция была добавлена в Qt 4.1.

[signal] void QTableWidget::currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)

Этот сигнал испускается всякий раз, когда текущий элемент меняется. Элемент previous — это элемент, который ранее имел фокус; current — это новый текущий элемент.

[slot] void QTableWidget::insertColumn(int column)

Вставляет пустой столбец в таблицу в позицию column.

[slot] void QTableWidget::insertRow(int row)

Вставляет пустую строку в таблицу в позицию row.

[signal] void QTableWidget::itemActivated(QTableWidgetItem *item)

Этот сигнал испускается, когда указанный элемент item был активирован.

[signal] void QTableWidget::itemChanged(QTableWidgetItem *item)

Этот сигнал испускается всякий раз, когда данные элемента item изменяются.

[signal] void QTableWidget::itemClicked(QTableWidgetItem *item)

Этот сигнал испускается всякий раз, когда в таблице щелкают по элементу. Указанный элемент item — это элемент, по которому был клик.

[signal] void QTableWidget::itemDoubleClicked(QTableWidgetItem *item)

Этот сигнал испускается всякий раз, когда в таблице дважды щелкают по элементу. Указанный элемент item — это элемент, по которому было двойное нажатие.

[signal] void QTableWidget::itemEntered(QTableWidgetItem *item)

Этот сигнал испускается, когда курсор мыши входит в элемент. Элемент item — это элемент, в который вошел курсор.

Этот сигнал испускается только тогда, когда mouseTracking включен или когда нажата кнопка мыши во время перемещения в элемент.

[signal] void QTableWidget::itemPressed(QTableWidgetItem *item)

Этот сигнал испускается всякий раз, когда в таблице нажимают на элемент. Указанный элемент item — это элемент, на который было нажато.

[signal] void QTableWidget::itemSelectionChanged()

Этот сигнал испускается всякий раз, когда изменяется выделение.

См. также selectedItems() и QTableWidgetItem::isSelected().

[slot] void QTableWidget::removeColumn(int column)

Удаляет столбец column и все его элементы из таблицы.

[slot] void QTableWidget::removeRow(int row)

Удаляет строку row и все её элементы из таблицы.

[slot] void QTableWidget::scrollToItem(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Прокручивает представление, если необходимо, чтобы элемент item был виден. Параметр hint указывает более точно, где должен быть расположен элемент item после операции.

[virtual] QTableWidget::~QTableWidget()

Уничтожает этот QTableWidget.

QWidget *QTableWidget::cellWidget(int row, int column) const

Возвращает виджет, отображаемый в ячейке с заданными row и column.

Примечание: Таблица принимает во владение виджет.

Эта функция была добавлена в Qt 4.1.

См. также setCellWidget().

void QTableWidget::closePersistentEditor(QTableWidgetItem *item)

Закрывает постоянный редактор для элемента item.

См. также openPersistentEditor() и isPersistentEditorOpen().

int QTableWidget::column(const QTableWidgetItem *item) const

Возвращает номер столбца для элемента item.

int QTableWidget::columnCount() const

Возвращает количество столбцов.

Примечание: Функция-геттер для свойства columnCount.

См. также setColumnCount().

int QTableWidget::currentColumn() const

Возвращает номер столбца текущего элемента.

См. также currentRow() и setCurrentCell().

QTableWidgetItem *QTableWidget::currentItem() const

Возвращает текущий элемент.

См. также setCurrentItem().

int QTableWidget::currentRow() const

Возвращает номер строки текущего элемента.

См. также currentColumn() и setCurrentCell().

[override virtual protected] void QTableWidget::dropEvent(QDropEvent *event)

Переопределяет: QAbstractItemView::dropEvent(QDropEvent *event).

[virtual protected] bool QTableWidget::dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action)

Обрабатывает данные data, предоставленные операцией перетаскивания, завершившейся указанным действием action в указанных row и column. Возвращает true если данные и действие могут быть обработаны моделью; в противном случае возвращает false.

См. также supportedDropActions().

void QTableWidget::editItem(QTableWidgetItem *item)

Начинает редактирование элемента, если он редактируемый.

[override virtual protected] bool QTableWidget::event(QEvent *e)

Переопределяет: QAbstractItemView::event(QEvent *event).

QList<QTableWidgetItem *> QTableWidget::findItems(const QString &text, Qt::MatchFlags flags) const

Ищет элементы, которые соответствуют text с использованием заданных flags.

QTableWidgetItem *QTableWidget::horizontalHeaderItem(int column) const

Возвращает элемент заголовка столбца для столбца column, если он был задан; в противном случае возвращает nullptr.

См. также setHorizontalHeaderItem().

[protected] QModelIndex QTableWidget::indexFromItem(const QTableWidgetItem *item) const

Возвращает QModelIndex, связанный с заданным item.

Примечание: В версиях Qt до 5.10 эта функция принимала не-const item.

bool QTableWidget::isPersistentEditorOpen(QTableWidgetItem *item) const

Возвращает значение, указывающее, открыт ли постоянный редактор для элемента item.

Эта функция была добавлена в Qt 5.10.

См. также openPersistentEditor() и closePersistentEditor().

QTableWidgetItem *QTableWidget::item(int row, int column) const

Возвращает элемент для заданной row и column, если он был задан; в противном случае возвращает nullptr.

См. также setItem().

QTableWidgetItem *QTableWidget::itemAt(const QPoint &point) const

Возвращает указатель на элемент в заданной point или возвращает nullptr если point не покрывает элемент в виджете таблицы.

См. также item().

QTableWidgetItem *QTableWidget::itemAt(int ax, int ay) const

Возвращает элемент в позиции, эквивалентной QPoint(ax, ay) в системе координат виджета таблицы, или возвращает nullptr если указанная точка не покрывается элементом в виджете таблицы.

См. также item().

[protected] QTableWidgetItem *QTableWidget::itemFromIndex(const QModelIndex &index) const

Возвращает указатель на QTableWidgetItem, связанный с данным index.

const QTableWidgetItem *QTableWidget::itemPrototype() const

Возвращает шаблон элемента, используемый таблицей.

См. также setItemPrototype().

[protected] QList<QTableWidgetItem *> QTableWidget::items(const QMimeData *data) const

Возвращает список указателей на элементы, содержащиеся в объекте data. Если объект не был создан QTreeWidget в том же процессе, список пустой.

[virtual protected] QMimeData *QTableWidget::mimeData(const QList<QTableWidgetItem *> items) const

Возвращает объект, содержащий сериализованное описание указанных items. Формат описания элементов получен из функции mimeTypes().

Если список элементов пустой, возвращается nullptr вместо сериализованного пустого списка.

[virtual protected] QStringList QTableWidget::mimeTypes() const

Возвращает список MIME-типов, которые могут использоваться для описания списка элементов виджета таблицы.

См. также mimeData().

void QTableWidget::openPersistentEditor(QTableWidgetItem *item)

Открывает редактор для данного item. Редактор остается открытым после редактирования.

См. также closePersistentEditor() и isPersistentEditorOpen().

void QTableWidget::removeCellWidget(int row, int column)

Удаляет виджет, установленный в ячейке, указанной row и column.

Эта функция была добавлена в Qt 4.3.

int QTableWidget::row(const QTableWidgetItem *item) const

Возвращает строку для item.

int QTableWidget::rowCount() const

Возвращает количество строк.

Примечание: Функция-получатель свойства rowCount.

См. также setRowCount().

QList<QTableWidgetItem *> QTableWidget::selectedItems() const

Возвращает список всех выбранных элементов.

Функция возвращает список указателей на содержимое выделенных ячеек. Используйте функцию selectedIndexes() для получения полного выбора включая пустые ячейки.

См. также selectedIndexes().

QList<QTableWidgetSelectionRange> QTableWidget::selectedRanges() const

Возвращает список всех выделенных диапазонов.

См. также QTableWidgetSelectionRange.

void QTableWidget::setCellWidget(int row, int column, QWidget *widget)

Устанавливает данный widget для отображения в ячейке в заданной row и column, передавая владение виджетом таблице.

Если виджет ячейки А заменяется виджетом ячейки B, виджет ячейки A будет удален. Например, в приведенном ниже фрагменте кода объект QLineEdit будет удален.

setCellWidget(row, column, new QLineEdit);
...
setCellWidget(row, column, new QTextEdit);

Эта функция была добавлена в Qt 4.1.

См. также cellWidget().

void QTableWidget::setColumnCount(int columns)

Устанавливает количество столбцов в модели этой таблицы в columns. Если это значение меньше columnCount(), данные в нежелательных столбцах удаляются.

Примечание: Функция-установитель свойства columnCount.

См. также columnCount() и setRowCount().

void QTableWidget::setCurrentCell(int row, int column)

Устанавливает текущую ячейку в ячейку с позицией (row, column).

В зависимости от текущего режима выбора, ячейка может также быть выбрана.

Эта функция была добавлена в Qt 4.1.

См. также setCurrentItem(), currentRow() и currentColumn().

void QTableWidget::setCurrentCell(int row, int column, QItemSelectionModel::SelectionFlags command)

Устанавливает текущую ячейку в ячейку с позицией (row, column), используя заданный command.

Эта функция была добавлена в Qt 4.4.

См. также setCurrentItem(), currentRow() и currentColumn().

void QTableWidget::setCurrentItem(QTableWidgetItem *item)

Устанавливает текущий элемент в item.

Если режим выбора не NoSelection, элемент также выбирается.

См. также currentItem() и setCurrentCell().

void QTableWidget::setCurrentItem(QTableWidgetItem *item, QItemSelectionModel::SelectionFlags command)

Устанавливает текущим элементом item, используя заданное command.

Эта функция была добавлена в Qt 4.4.

См. также currentItem() и setCurrentCell().

void QTableWidget::setHorizontalHeaderItem(int column, QTableWidgetItem *item)

Устанавливает элемент горизонтальной заголовка для столбца column в item. Если необходимо, количество столбцов увеличивается, чтобы вместить элемент. Предыдущий элемент заголовка (если он был) удаляется.

См. также horizontalHeaderItem().

void QTableWidget::setHorizontalHeaderLabels(const QStringList &labels)

Устанавливает метки горизонтальной заголовка с помощью labels.

void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)

Устанавливает элемент для заданной row и column в item.

Таблица принимает владение элементом.

Обратите внимание, что если сортировка включена (см. sortingEnabled) и column является текущим столбцом сортировки, то row будет перемещён в отсортированное положение, определяемое item.

Если вы хотите установить несколько элементов определённой строки (например, вызывая setItem() в цикле), вы можете отключить сортировку перед этим и включить её обратно после; это позволит вам использовать тот же аргумент row для всех элементов в одной строке (т.е. setItem() не будет перемещать строку).

См. также item() и takeItem().

void QTableWidget::setItemPrototype(const QTableWidgetItem *item)

Устанавливает прототип элемента для таблицы в указанный item.

Виджет таблицы будет использовать клонирующую функцию прототипа элемента, когда ему необходимо создать новый элемент таблицы. Например, когда пользователь редактирует пустую ячейку. Это полезно, когда у вас есть подкласс QTableWidgetItem, и вы хотите убедиться, что QTableWidget создаёт экземпляры вашего подкласса.

Таблица принимает владение прототипом.

См. также itemPrototype().

void QTableWidget::setRangeSelected(const QTableWidgetSelectionRange &range, bool select)

Выделяет или отменяет выделение range в зависимости от select.

void QTableWidget::setRowCount(int rows)

Устанавливает количество строк в модели этой таблицы в rows. Если это значение меньше, чем rowCount(), данные в ненужных строках удаляются.

Примечание: Функция-сеттер для свойства rowCount.

См. также rowCount() и setColumnCount().

void QTableWidget::setVerticalHeaderItem(int row, QTableWidgetItem *item)

Устанавливает элемент вертикального заголовка для строки row в item.

См. также verticalHeaderItem().

void QTableWidget::setVerticalHeaderLabels(const QStringList &labels)

Устанавливает метки вертикальной заголовка с помощью labels.

void QTableWidget::sortItems(int column, Qt::SortOrder order = Qt::AscendingOrder)

Сортирует все строки в виджете таблицы в зависимости от column и order.

[virtual protected] Qt::DropActions QTableWidget::supportedDropActions() const

Возвращает действия перетаскивания, поддерживаемые этим представлением.

См. также Qt::DropActions.

QTableWidgetItem *QTableWidget::takeHorizontalHeaderItem(int column)

Удаляет элемент горизонтального заголовка в column из заголовка без его удаления.

Эта функция была добавлена в Qt 4.1.

QTableWidgetItem *QTableWidget::takeItem(int row, int column)

Удаляет элемент в row и column из таблицы без его удаления.

QTableWidgetItem *QTableWidget::takeVerticalHeaderItem(int row)

Удаляет элемент вертикального заголовка в row из заголовка без его удаления.

Эта функция была добавлена в Qt 4.1.

QTableWidgetItem *QTableWidget::verticalHeaderItem(int row) const

Возвращает элемент вертикального заголовка для строки row.

См. также setVerticalHeaderItem().

int QTableWidget::visualColumn(int logicalColumn) const

Возвращает визуальный столбец заданного logicalColumn.

QRect QTableWidget::visualItemRect(const QTableWidgetItem *item) const

Возвращает прямоугольник на представлении, занимаемый элементом в item.

int QTableWidget::visualRow(int logicalRow) const

Возвращает визуальную строку заданной logicalRow.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qtablewidget.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API