Разница между QSocketNotifier::activated и QIODevice::readyRead

Я создаю новый Read QSocketNotifier (QSocketNotifier::Read) и устанавливаю его на QSslSocket. Что такое сигнал QSslSocket, который излучается, когда сигнал activated излучается из QSocketNotifier?

Есть ли разница между сигналом activated, излучаемым QSocketNotifier, установленным на QSslSocket, и сигналом QIODevice::readyRead, излучаемым QSslSocket?


person Jacob Krieg    schedule 13.03.2013    source источник


Ответы (1)


Если QSocketNotifier наблюдает за QIODevice, то функциональной разницы между QIODevice::readyRead() и QSocketNotifier::activated(QSocketNotifier::Read) нет. По этой причине вам не нужен QSocketNotifier, если вы используете только QIODevice объекты.

Основное использование QSocketNotifier — это мониторинг сокета (или любого другого файлового дескриптора), который вы открыли через низкоуровневый API. Вы можете передать ему файловый дескриптор, который не связан с другим QObject (например, файл, открытый через std::ifstream), и он будет запускать сигнал activated(), когда вы можете читать из вашего файлового дескриптора, что полезно, поскольку общий файловый дескриптор не будет запускать сигналы Qt сам по себе.

person Fred    schedule 13.03.2013