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()
。另请参阅
QByteArray
QList
- __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
超出数组的末尾,则不会发生任何操作。另请参阅