PySide6.QtCore.QSocketNotifier¶
- class QSocketNotifier¶
QSocketNotifier类提供了对文件描述符活动监控的支持。更多…概要¶
方法¶
def
__init__()def
isEnabled()def
isValid()def
setSocket()def
socket()def
type()
插槽¶
def
setEnabled()
信号¶
def
activated()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QSocketNotifier使得将Qt的事件循环与其他基于文件描述符的事件循环集成成为可能。文件描述符的操作在Qt的主事件循环(exec())中被检测到。一旦你使用低级(通常是平台特定的)API打开了一个设备,你可以创建一个套接字通知器来监视文件描述符。如果描述符被传递给通知器的构造函数,套接字通知器默认是启用的,即每当发生与其类型对应的套接字事件时,它就会发出activated()信号。将activated()信号连接到槽,当发生与你的套接字通知器类型对应的事件时,你希望调用该槽。
您可以创建一个没有分配描述符的套接字通知器。在这种情况下,您应该在获得描述符后调用
setSocket()函数。有三种类型的套接字通知器:读取、写入和异常。类型由
Type枚举描述,并且在构造套接字通知器时必须指定。构造后可以使用type()函数确定。请注意,如果您需要监视同一文件描述符的读取和写入,您必须创建两个套接字通知器。还要注意,不可能在同一套接字上安装两个相同类型(Read、Write、Exception)的套接字通知器。setEnabled()函数允许您禁用或启用套接字通知器。通常建议显式启用或禁用套接字通知器,特别是对于写通知器。禁用的通知器会忽略套接字事件(与不创建套接字通知器的效果相同)。使用isEnabled()函数来确定通知器的当前状态。最后,您可以使用
socket()函数来检索套接字标识符。尽管该类被称为QSocketNotifier,但它通常用于除套接字之外的其他类型的设备。QTcpSocket和QUdpSocket通过信号提供通知,因此通常不需要在它们上使用QSocketNotifier。- class Type¶
此枚举描述了套接字通知器可以识别的各种事件类型。在构造套接字通知器时必须指定类型。
请注意,如果您需要同时监控同一文件描述符的读取和写入操作,您必须创建两个套接字通知器。还要注意,无法在同一套接字上安装两个相同类型(读取、写入、异常)的套接字通知器。
常量
描述
QSocketNotifier.Read
有数据需要读取。
QSocketNotifier.Write
可以写入数据。
QSocketNotifier.Exception
发生了异常。我们建议不要使用这个。
另请参阅
QSocketNotifier()type()
使用给定的
type构造一个没有分配描述符的套接字通知器。parent参数传递给QObject的构造函数。调用
setSocket()函数来设置用于监控的描述符。使用给定的
parent构造一个套接字通知器。它启用socket,并监视给定type的事件。通常建议显式启用或禁用套接字通知器,特别是对于写通知器。
Windows用户注意:传递给
QSocketNotifier的套接字将变为非阻塞模式,即使它最初是作为阻塞套接字创建的。另请参阅
- activated(socket, activationEvent)¶
- Parameters:
socket –
QSocketDescriptoractivationEvent –
类型
每当套接字通知器启用并且发生与其
type对应的套接字事件时,就会发出此信号。套接字标识符在
socket参数中传递。- isEnabled()¶
- Return type:
布尔
如果通知器已启用,则返回
true;否则返回false。另请参阅
- isValid()¶
- Return type:
布尔
如果通知器有效(即已分配描述符),则返回
true;否则返回false。另请参阅
- setEnabled(enable)¶
- Parameters:
enable – 布尔值
如果
enable为 true,则启用通知器;否则禁用通知器。当通知器启用时,每当发生与其
type对应的套接字事件时,它会发出activated()信号。当它被禁用时,它会忽略套接字事件(与不创建套接字通知器的效果相同)。在发出activated()信号后,通常应立即禁用写入通知器
另请参阅
- setSocket(socket)¶
- Parameters:
socket –
qintptr
将
socket分配给此通知器。- socket()¶
- Return type:
qintptr
返回分配给此对象的套接字标识符。
另请参阅
返回指定给构造函数的套接字事件类型。
另请参阅