PySide6.QtCore.QBitArray¶
- class QBitArray¶
-
概要¶
方法¶
def
__init__()def
__getitem__()def
__len__()def
__setitem__()def
at()def
bits()def
clear()def
clearBit()def
count()def
fill()def
isEmpty()def
isNull()def
__ne__()def
__and__()def
__iand__()def
__eq__()def
operator[]()def
__xor__()def
__ixor__()def
__or__()def
__ior__()def
__invert__()def
resize()def
setBit()def
size()def
swap()def
testBit()def
toUInt32()def
toggleBit()def
truncate()
静态函数¶
def
fromBits()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
一个
QBitArray是一个数组,它提供了对单个位的访问,并提供了对整个位数组进行操作的运算符(AND、OR、XOR和NOT)。它使用隐式共享(写时复制)来减少内存使用并避免不必要的数据复制。以下代码构造了一个包含200位初始化为false(0)的
QBitArray:ba = QBitArray(200)
要将位初始化为 true,可以将
true作为第二个参数传递给构造函数,或者稍后调用fill()。QBitArray使用基于0的索引,就像C++数组一样。要访问特定索引位置的位,可以使用operator[]()。在非常量位数组上,operator[]()返回一个可以用于赋值左侧的位的引用。例如:ba = QBitArray() ba.resize(3) ba[0] = True ba[1] = False ba[2] = True
出于技术原因,使用
testBit()和setBit()访问数组中的位比使用operator[]()更高效。例如:ba = QBitArray(3) ba.setBit(0, True) ba.setBit(1, False) ba.setBit(2, True)
QBitArray支持&(AND),|(OR),^(XOR),~(NOT), 以及&=,|=, 和^=。这些操作符的工作方式与同名的内置 C++ 位操作符相同。例如:x = QBitArray(5) x.setBit(3, True) # x: [ 0, 0, 0, 1, 0 ] y = QBitArray(5) y.setBit(4, True) # y: [ 0, 0, 0, 0, 1 ] x |= y # x: [ 0, 0, 0, 1, 1 ]
由于历史原因,
QBitArray区分了空位数组和空位数组。一个空位数组是使用QBitArray的默认构造函数初始化的位数组。一个空位数组是任何大小为0的位数组。一个空位数组总是空的,但一个空位数组不一定是空的:QBitArray().isNull() # returns true QBitArray().isEmpty() # returns true QBitArray(0).isNull() # returns false QBitArray(0).isEmpty() # returns true QBitArray(3).isNull() # returns false QBitArray(3).isEmpty() # returns false
除了
isNull()之外的所有函数都将空的位数组视为与空的位数组相同;例如,QBitArray()与QBitArray(0)相等。我们建议您始终使用isEmpty()并避免使用isNull()。另请参阅
QByteArrayQList- __init__()¶
构造一个空的位数组。
另请参阅
- __init__(other)
- Parameters:
其他 –
QBitArray
构造
other的副本。此操作需要常数时间,因为
QBitArray是隐式共享的。这使得从函数返回QBitArray非常快。如果共享实例被修改,它将被复制(写时复制),这需要线性时间。另请参阅
operator=()- __init__(size[, val=false])
- Parameters:
size – int
val – 布尔值
构造一个包含
size位的位数组。这些位用value初始化,默认值为false(0)。- __getitem__()¶
- __len__()¶
- __setitem__()¶
- at(i)¶
- Parameters:
i – 整数
- Return type:
布尔
返回索引位置
i处的位的值。i必须是位数组中的有效索引位置(即 0 <=i<size())。另请参阅
operator[]()- bits()¶
- Return type:
字符串
返回一个指向此
QBitArray的密集位数组的指针。位从每个字节的最低有效位向上计数。最后一个字节中相关的位数由size() % 8给出。另请参阅
- clear()¶
清除位数组的内容并使其为空。
- clearBit(i)¶
- Parameters:
i – 整数
将索引位置
i的位设置为 0。i必须是位数组中的有效索引位置(即 0 <=i<size())。另请参阅
- count()¶
- Return type:
整数
与
size()相同。- count(on)
- Parameters:
on – 布尔值
- Return type:
整数
如果
on为真,此函数返回存储在位数组中的1位数;否则返回0位数。- fill(aval[, asize=-1])¶
- Parameters:
aval – 布尔值
asize – int
- Return type:
布尔
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将位数组中的每一位设置为
value,如果成功则返回true;否则返回false。如果size与-1(默认值)不同,位数组将预先调整为size。示例:
ba = QBitArray(8) ba.fill(True) # ba: [ 1, 1, 1, 1, 1, 1, 1, 1 ] ba.fill(False, 2) # ba: [ 0, 0 ]
另请参阅
- fill(val, first, last)
- Parameters:
val – 布尔值
first – int
last – int
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个重载函数。
将索引位置从
begin到(但不包括)end的位设置为value。begin必须是位数组中的有效索引位置(0 <=begin<size())。end必须是一个有效的索引位置或等于size(),在这种情况下,填充操作将一直运行到数组的末尾(0 <=end<=size())。示例:
ba = QBitArray(4) ba.fill(True, 1, 2) # ba: [ 0, 1, 0, 0 ] ba.fill(True, 1, 3) # ba: [ 0, 1, 1, 0 ] ba.fill(True, 1, 4) # ba: [ 0, 1, 1, 1 ]
创建一个
QBitArray,其密集位数组位于data,具有size位。data处的字节数组必须至少为size/ 8(向上取整)字节长。如果
size不是8的倍数,此函数将包含data中最后一个字节的最低size% 8 位。另请参阅
- isEmpty()¶
- Return type:
布尔
如果此位数组的大小为0,则返回
true;否则返回false。另请参阅
- isNull()¶
- Return type:
布尔
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
如果此位数组为空,则返回
true;否则返回false。示例:
QBitArray().isNull() # returns true QBitArray(0).isNull() # returns false QBitArray(3).isNull() # returns false
由于历史原因,Qt 在空位数组和空位数组之间做了区分。对于大多数应用程序来说,重要的是位数组是否包含任何数据,这可以使用
isEmpty()来确定。另请参阅
如果
lhs不等于rhs位数组,则返回true;否则返回false。另请参阅
operator==()如果
lhs等于rhs位数组,则返回true;否则返回false。另请参阅
operator!=()- operator(i)¶
- Parameters:
i – 整数
- Return type:
布尔
这是一个重载函数。
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回一个包含位数组
a反转位的位数组。示例:
a = QBitArray(3) b = QBitArray() a[0] = 1 a[1] = 0; a[2] = 1; # a: [ 1, 0, 1 ] b = ~a # b: [ 0, 1, 0 ]
另请参阅
operator&()operator|()operator^()- resize(size)¶
- Parameters:
size – int
将位数组调整为
size位。如果
size大于当前大小,位数组将被扩展,使其达到size位,额外的位将添加到末尾。新位初始化为false(0)。如果
size小于当前大小,则从末尾移除位。另请参阅
- setBit(i)¶
- Parameters:
i – 整数
将索引位置
i的位设置为 1。i必须是位数组中的有效索引位置(即 0 <=i<size())。另请参阅
- setBit(i, val)
- Parameters:
i – 整数
val – 布尔值
这是一个重载函数。
将索引位置
i的位设置为value。- size()¶
- Return type:
整数
返回存储在位数组中的位数。
另请参阅
将位数组
other与此位数组交换。此操作非常快速且永远不会失败。- testBit(i)¶
- Parameters:
i – 整数
- Return type:
布尔
如果索引位置
i的位为 1,则返回true;否则返回false。i必须是位数组中的有效索引位置(即 0 <=i<size())。另请参阅
返回将位数组转换为整数的结果。转换基于
endianness。将数组的前32位转换为quint32并返回,遵循endianness。如果ok不是空指针,并且数组超过32位,ok将被设置为false,并且此函数返回零;否则,它将被设置为true。- toggleBit(i)¶
- Parameters:
i – 整数
- Return type:
布尔
反转索引位置
i处的位的值,返回该位之前的值,如果该位被设置则返回 true,如果未被设置则返回 false。如果前一个值是0,新值将是1。如果前一个值是1,新值将是0。
i必须是位数组中的有效索引位置(即 0 <=i<size())。另请参阅
- truncate(pos)¶
- Parameters:
pos – 整数
在索引位置
pos处截断位数组。如果
pos超出数组的末尾,则不会发生任何操作。另请参阅