gpt4 book ai didi

python - Qt DropActions : What is ActionMask for?

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:41 25 4
gpt4 key购买 nike

您可以使用标志的常用位掩码设置dropActions。来自 the docs ,我们有以下可能的放置操作:

Action                  Value       Result   
Qt::CopyAction 0x1 (1) Copy the data to the target.
Qt::MoveAction 0x2 (2) Move the data from the source to the target.
Qt::LinkAction 0x4 (4) Create a link from the source to the target.
Qt::ActionMask 0xff (255) [none given in docs]
Qt::IgnoreAction 0x0 (0) Ignore the action (do nothing with the data).

我对 ActionMask 操作感到困惑。我还没有找到任何关于它的讨论(例如 herehere ),甚至没有找到任何正在使用的示例(例如在 Nullege)。它的值是11111111,所以任何时候你将它与任何其他dropActions按位,你都会再次得到ActionMask

那么,ActionMask 的用途是什么?什么时候使用?它记录在哪里?

编辑:

正如已接受的答案中所指出的,我在枚举中遗漏了一个 DropAction,这可能是关键:

TargetMoveAction    0x8002 (32770 in dec, 1000000000000010 in bin)

最佳答案

一般来说,掩码是用于使用按位运算包含或排除另一个值的某些位的值。

DropAction enum 的定义包含另一个标志:

    Qt::TargetMoveAction    0x8002

超出了掩码的范围。因此掩码可用于筛选出此类值,如下所示:

>>> from PySide.QtCore import Qt
>>> a = Qt.CopyAction | Qt.TargetMoveAction
>>> int(a)
32771
>>> int(a & Qt.ActionMask)
3

反之亦然:

>>> int(a & ~Qt.ActionMask)
32768

至于为什么会使用它:Qt4 在其源代码中的一个位置使用了它,即 gui/kernel/qmotifdnd_x11.cpp 中的 QtDropActionToDndOperation 函数。充分利用它,您将...

关于python - Qt DropActions : What is ActionMask for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com