hdjdjrjjfjdnee
2022-04-29 15:14:58 +08:00
昨天 v2 上不了,
昨天解决的问题:
数据量上 2w 多跟 K 线的时候超级卡:
1 、series.append(QCandlestickSet(o, h, l, c, ind)) , 导入的 o, h, l, c, ind , 千万不要用 pandas 数据的.iloc 取值,2w 行数据:
o = data.iloc[ind]['o'] 要了 4 秒,
o = data['o'].iloc[ind] 要了 0.47 秒
o = data[ind, 0] 用 numpy 取值只要了 0.0099 秒
2 、第二个图形卡的原因是:
2w 个数据 ,setGridLineVisible 必须设置 False , 不然图像卡死了
chart.axisX().hide() 横坐标最好是隐藏或者设置具体个数在 30 个以内, 不然刷新图形卡死了
自己定义鼠标滚轮事件 wheelEvent , 用来放大缩小图形, 做是做好了, 但是卡死了:因为滚轮每次滚动一下就刷新一次, 但是我们用滚轮滑一下会触发非常多下, 导致 1 秒内会刷新 3 次以上的图形,
1 、解决办法是:找到滚轮结束的时候状态去更新, 这个问题找了一个上午没找到, 放弃了
2 、最后用 setRubberBand , 发现他会跟我现有的鼠标事件 mouseMoveEvent 、mousePressEvent 、mouseReleaseEvent 冲突了。。。。。
昨天的问题:
1 、图都画好了, 卡在了 setRubberBand (橡皮筋控件上),QChartView 这个类没有 RubberBandchange 响应函数,画图选取矩形后 k 线 Y 轴没有跟着曲线变化, 最后曲线扭曲了,于是想从 QGraphicsView 父类自己造个梯子。。。搞了我快一天了, 发现 QGraphicsView 无法叠加在 k 线,放弃了, 最后发现 QChartView 可以自己定义一个自己的 RubberBand , 然后重写鼠标事件就搞定了
self.rb = QRubberBand(QRubberBand.Rectangle, self.chartview) # 橡皮筋控件
2 、十字线及鼠标所在 k 线显示价格信号数据,用 QGraphicsLineItem 这个类定义 2 条直线
现在的问题:
卡在了买卖信号连线。。。已经找了一个上午了。。。。