我创建了一个新的Read QSocketNotifier
(QSocketNotifier::Read
),并将其安装在QSslSocket
上。当QSocketNotifier
发出activated
信号时,发出的QSslSocket
信号是什么?
安装在QSslSocket
上的QSocketNotifier
发出的activated
信号与QSslSocket
发出的QIODevice::readyRead
信号有什么区别吗?
如果QSocketNotifier
正在观看QIODevice,那么QIODevice::readyRead()
和QSocketNotifier::activated(QSocketNotifier::Read)
之间没有功能差异。因此,如果您只使用QIODevice
对象,则不需要QSocketNotifier
。
QSocketNotifier
的主要用途是监视通过低级API打开的套接字(或任何其他文件描述符)。你可以传递给它一个没有关联到另一个QObject的文件描述符(比如通过std::ifstream打开的文件),当你从你的文件描述符中读取时,它会触发一个activated()
信号,这是有用的,因为一个通用的文件描述符不会自己触发Qt信号。