Spec-Zone.ru › Qt

Класс QTableWidget

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

Заголовок: #include <QTableWidget>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
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
QModelIndex indexFromItem(const QTableWidgetItem *item) 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
QTableWidgetItem * itemFromIndex(const QModelIndex &index) const
const QTableWidgetItem * itemPrototype() const
QList<QTableWidgetItem *> items(const QMimeData *data) 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 очистить()
void очиститьСодержимое()
void вставитьСтолбец(int column)
void вставитьСтроку(int row)
void удалитьСтолбец(int column)
void удалитьСтроку(int row)
void прокрутитьДоЭлемента(const QTableWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Сигналы

void активированЯчейка(int row, int column)
void измененаЯчейка(int row, int column)
void нажатаЯчейка(int row, int column)
void дваждыНажатаЯчейка(int row, int column)
void введенаЯчейка(int row, int column)
void нажатаЯчейка(int row, int column)
void измененаТекущаяЯчейка(int currentRow, int currentColumn, int previousRow, int previousColumn)
void изменёнТекущийЭлемент(QTableWidgetItem *current, QTableWidgetItem *previous)
void активированЭлемент(QTableWidgetItem *item)
void изменёнЭлемент(QTableWidgetItem *item)
void нажатЭлемент(QTableWidgetItem *item)
void дваждыНажатЭлемент(QTableWidgetItem *item)
void введёнЭлемент(QTableWidgetItem *item)
void нажатЭлемент(QTableWidgetItem *item)
void измененоВыборЭлементов()

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

virtual bool выброситьДанныеMime(int row, int column, const QMimeData *data, Qt::DropAction action)
virtual QMimeData * данныеMime(const QList<QTableWidgetItem *> &items) const
virtual QStringList типыMime() const
virtual Qt::DropActions поддерживаемыеДействияПеретаскивания() const

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

virtual void событиеВыброса(QDropEvent *event) override
virtual bool событие(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(). Таблица может быть очищена с помощью функции очистить().

См. также QTableWidgetItem, QTableView и Программирование с помощью моделей/представлений.

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

количествоСтолбцов : int

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

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

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

int количествоСтолбцов() const
void установитьКоличествоСтолбцов(int columns)

количествоСтрок : int

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

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

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

int количествоСтрок() const
void установитьКоличествоСтрок(int rows)

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

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

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

QTableWidget::QTableWidget(QWidget *parent = nullptr)

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

[signal] void QTableWidget::активированЯчейка(int row, int column)

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

[signal] void QTableWidget::измененаЯчейка(int row, int column)

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

[signal] void QTableWidget::нажатаЯчейка(int row, int column)

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

[signal] void QTableWidget::дваждыНажатаЯчейка(int row, int column)

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

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

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

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

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

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

[slot] void QTableWidget::clear()

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

[slot] void QTableWidget::clearContents()

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

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

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

[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.

Примечание: таблица берёт на себя владение виджетом.

См. также 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)

Начинает редактирование элемента 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().

QModelIndex QTableWidget::indexFromItem(const QTableWidgetItem *item) const

Возвращает QModelIndex, связанную с заданным элементом item.

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

[since 5.10] 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().

QTableWidgetItem *QTableWidget::itemFromIndex(const QModelIndex &index) const

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

const QTableWidgetItem *QTableWidget::itemPrototype() const

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

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

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.

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, передавая владение виджетом таблице.

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

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

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

void QTableWidget::setColumnCount(int columns)

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

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

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

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

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

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

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

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

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

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

void QTableWidget::setCurrentItem(QTableWidgetItem *item)

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

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

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

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

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

См. также 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)

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

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

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

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

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

void QTableWidget::setItemPrototype(const QTableWidgetItem *item)

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

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

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

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

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

Выбирает или отменяет выбор диапазона в зависимости от 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 из заголовка без его удаления.

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

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

QTableWidgetItem *QTableWidget::takeVerticalHeaderItem(int row)

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

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-6.2/qtablewidget.html

Spec-Zone.ru

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