Spec-Zone.ru › Qt 5.6

Класс QTableWidget

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

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

Свойства

  • columnCount : int
  • rowCount : int
  • 5 свойств унаследовано от QTableView
  • 16 свойств унаследовано от QAbstractItemView
  • 3 свойства унаследовано от QAbstractScrollArea
  • 6 свойств унаследовано от QFrame
  • 58 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

Общедоступные функции

QTableWidget(QWidget *parent = Q_NULLPTR)
QTableWidget(int rows, int columns, QWidget *parent = Q_NULLPTR)
~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
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
  • 34 общедоступных функции унаследованы от QTableView
  • 57 общедоступных функций унаследованы от QAbstractItemView
  • 20 общедоступных функций унаследованы от QAbstractScrollArea
  • 14 общедоступных функций унаследованы от QFrame
  • 211 общедоступных функций унаследованы от QWidget
  • 31 общедоступных функций унаследованы от QObject
  • 14 общедоступных функций унаследованы от QPaintDevice

Общедоступные слоты

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)
  • 11 общедоступных слотов унаследованы от QTableView
  • 9 общедоступных слотов унаследованы от QAbstractItemView
  • 19 общедоступных слотов унаследованы от QWidget
  • 1 общедоступный слот унаследован от QObject

Сигналы

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()
  • 7 сигналов унаследовано от QAbstractItemView
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject

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

virtual bool dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action)
QModelIndex indexFromItem(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)
virtual bool event(QEvent *e)
  • 15 защищённых функций унаследованы от QTableView
  • 37 защищённых функций унаследованы от QAbstractItemView
  • 20 защищённых функций унаследованы от QAbstractScrollArea
  • 4 защищённых функций унаследованы от QFrame
  • 35 защищённых функций унаследованы от QWidget
  • 9 защищённых функций унаследованы от QObject
  • 1 защищённая функция унаследована от QPaintDevice

Дополнительные унаследованные члены

  • 5 статических общедоступных членов унаследованы от QWidget
  • 11 статических общедоступных членов унаследованы от QObject
  • 6 защищённых слотов унаследовано от QTableView
  • 9 защищённых слотов унаследовано от QAbstractItemView
  • 1 защищённый слот унаследован от QWidget

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

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

Табличные виджеты обеспечивают стандартные средства отображения таблиц для приложений. Элементы в 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().

Screenshot of a Windows Vista style table widget Screenshot of a Macintosh style table widget Screenshot of a Fusion style table widget
Таблица виджет в стиле «Windows Vista». Таблица виджет в стиле «Macintosh». Таблица виджет в стиле «Fusion».

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

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

columnCount : int

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

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

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

int columnCount() const
void setColumnCount(int columns)

rowCount : int

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

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

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

int rowCount() const
void setRowCount(int rows)

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

QTableWidget::QTableWidget(QWidget *parent = Q_NULLPTR)

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

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

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

QTableWidget::~QTableWidget()

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

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

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

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

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

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

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

[slot] void QTableWidget::clear()

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

[slot] void QTableWidget::clearContents()

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

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

void QTableWidget::closePersistentEditor(QTableWidgetItem *item)

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

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

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

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

int QTableWidget::columnCount() const

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

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

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

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

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

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

int QTableWidget::currentColumn() const

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

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

QTableWidgetItem *QTableWidget::currentItem() const

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

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

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

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

int QTableWidget::currentRow() const

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

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

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

Переопределено из QWidget::dropEvent().

[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, если оно разрешено.

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

Переопределено из QObject::event().

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

Находит элементы, соответствующие тексту, используя заданные флаги.

QTableWidgetItem *QTableWidget::horizontalHeaderItem(int column) const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

const QTableWidgetItem *QTableWidget::itemPrototype() const

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

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

[signal] void QTableWidget::itemSelectionChanged()

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

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

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

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

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

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

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

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

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

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

void QTableWidget::openPersistentEditor(QTableWidgetItem *item)

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

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

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

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

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

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

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

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

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

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

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

int QTableWidget::rowCount() const

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

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

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

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

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

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

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

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

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

QList<QTableWidgetSelectionRange> QTableWidget::selectedRanges() const

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

См. также QTableWidgetSelectionRange.

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

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

Если виджет ячейки A заменяется виджетом ячейки 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.

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/archives/qt-5.6/qtablewidget.html

Spec-Zone.ru

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