Spec-Zone.ru › Qt 5.9

Класс QSocketNotifier

Класс QSocketNotifier обеспечивает поддержку мониторинга активности на дескрипторе файла. Подробнее...

Заголовок: #include <QSocketNotifier>
qmake: QT += core
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление Тип { Чтение, Запись, Исключение }

Функции публичного доступа

QSocketNotifier(qintptr сокет, Тип тип, QObject *родитель = Q_NULLPTR)
~QSocketNotifier()
bool isEnabled() const
qintptr сокет() const
Тип тип() const
  • 32 функции публичного доступа унаследованы от QObject

Слот доступа

void setEnabled(bool включить)
  • 1 слот доступа унаследован от QObject

Сигналы

void activated(int сокет)
  • 2 сигнала унаследованы от QObject

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

virtual bool event(QEvent *e)
  • 9 защищенных функций унаследованы от QObject

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

  • 1 свойство унаследовано от QObject
  • 11 статических публичных членов унаследованы от QObject
  • 9 защищенных функций унаследованы от QObject

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

Класс QSocketNotifier обеспечивает поддержку мониторинга активности на дескрипторе файла.

Класс QSocketNotifier позволяет интегрировать цикл событий Qt с другими циклами событий, основанными на дескрипторах файлов. Действия с дескриптором файла обнаруживаются в основном цикле событий Qt (QCoreApplication::exec()).

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

Существуют три типа уведомлений о сокетах: чтение, запись и исключение. Тип описывается перечислением Тип и должен быть указан при создании уведомления о сокете. После создания его можно определить с помощью функции тип(). Обратите внимание, что если вам нужно отслеживать как чтение, так и запись для одного и того же дескриптора файла, вам необходимо создать два уведомления о сокетах. Обратите также внимание, что нельзя установить два уведомления о сокетах одного типа (Чтение, Запись, Исключение) для одного и того же сокета.

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

Наконец, вы можете использовать функцию сокет(), чтобы получить идентификатор сокета. Несмотря на то, что класс называется QSocketNotifier, он обычно используется для других типов устройств, кроме сокетов. QTcpSocket и QUdpSocket предоставляют уведомления через сигналы, поэтому обычно нет необходимости использовать QSocketNotifier с ними.

См. также QFile, QProcess, QTcpSocket и QUdpSocket.

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

перечисление QSocketNotifier::Тип

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

Обратите внимание, что если вам нужно отслеживать как чтение, так и запись для одного и того же дескриптора файла, вам необходимо создать два уведомления о сокетах. Обратите также внимание, что нельзя установить два уведомления о сокетах одного типа (Чтение, Запись, Исключение) для одного и того же сокета.

Константа Значение Описание
QSocketNotifier::Read 0 Есть данные для чтения.
QSocketNotifier::Write 1 Данные могут быть записаны.
QSocketNotifier::Exception 2 Произошло исключение. Не рекомендуется использовать.

См. также QSocketNotifier() и тип().

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

QSocketNotifier::QSocketNotifier(qintptr сокет, Тип тип, QObject *родитель = Q_NULLPTR)

Создаёт уведомление о сокете с заданным родительским объектом. Включает сокет и отслеживает события заданного типа.

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

Примечание для пользователей Windows: Сокет, переданный в QSocketNotifier, станет неблокирующим, даже если он был создан как блокирующий сокет.

См. также setEnabled() и isEnabled().

QSocketNotifier::~QSocketNotifier()

Уничтожает это уведомление о сокете.

[signal] void QSocketNotifier::activated(int сокет)

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

Идентификатор сокета передаётся в параметре сокет.

Примечание: Это закрытый сигнал. Его можно использовать в подключениях сигналов, но его нельзя излучить пользователем.

См. также тип() и сокет().

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

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

bool QSocketNotifier::isEnabled() const

Возвращает true если уведомление включено; в противном случае возвращает false.

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

[slot] void QSocketNotifier::setEnabled(bool включить)

Если включить равно true, уведомление включено; в противном случае уведомление отключено.

Уведомление включено по умолчанию, т. е. оно излучает сигнал activated() всякий раз, когда происходит событие сокета, соответствующее его типу. Если оно отключено, оно игнорирует события сокета (тот же эффект, что и при отсутствии уведомления о сокете).

Уведомления о записи обычно должны быть отключены сразу после того, как был излучен сигнал activated()

См. также isEnabled() и activated().

qintptr QSocketNotifier::сокет() const

Возвращает идентификатор сокета, указанный в конструкторе.

См. также тип().

Тип QSocketNotifier::тип() const

Возвращает тип события сокета, указанный в конструкторе.

См. также сокет().

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

Spec-Zone.ru

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