我在QT图形场景视图中通过QGraphicsProxyWidget添加代理Widget(实现添加基本的QT Widget,如按钮、复选框、日期时间控件等),当数量超过3500左右的时候,QT应用程序直接崩溃了~
提示: CreateWindowEx failed (当前程序已使用了 Window 管理器对象的系统允许的所有句柄。)
这里我是在Windows系统上进行的实验,可见,创建WIdget的时候底层还是调用的Windows API CreateWindowEx
在Linux(Ubuntu)上进行测试,没有发现限制问题。
QT创建Widget的时候实际上调用了Windows API CreateWindowEx,当创建的数量很多时就会造成窗口句柄不够用。
初步分析:Windows的窗口句柄是有限制的,当消耗殆尽就会出现上述的错