You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt中QBarSet多值赋值时<<运算符的作用解析

QBarSet中连续<<运算符的作用及Python兼容问题

问题背景

在Qt Charts的开发示例中,出现了这样的代码:

set1 = QBarSet("Bob")
set2 = QBarSet("Tom")

set1 << 5 << 0 << 0 << 4 << 0 << 3
set2 << 3 << 5 << 8 << 4 << 8 << 5

这里的<<在Python中原是左移运算符,但用法和Qt官方C++示例一致,需要明确两个问题:

  • 该场景下连续使用<<的作用是什么?
  • Python能否直接使用此类写法?

解答

  1. 连续<<的作用
    Qt的QBarSet类重载了<<运算符(C++中为运算符重载,PyQt/PySide中通过__lshift__特殊方法实现),作用是向当前QBarSet对象中追加单个数值。
    之所以能连续调用,是因为每次执行set << value后,会返回set对象本身,因此可以链式调用,等同于依次执行:
set1 << 5
set1 << 0
set1 << 0
set1 << 4
set1 << 0
set1 << 3

最终实现批量给QBarSet添加多个数据的效果。

  1. Python能否直接使用该写法
    完全可以。PyQt和PySide作为Qt的Python绑定库,完整复刻了Qt C++ API的运算符重载逻辑,包括QBarSet的<<运算符。上述代码可以直接在Python环境中运行,行为和C++版本完全一致,不需要做任何转译处理。

内容的提问来源于stack exchange,提问作者ODScience

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 02:23:13