PyQt 跨类之间的数据通信问题亦或同步问题
0. 引言
针对上述问题,最好的办法即:Signal/Slot
,但是有时可能无法正常使用,比如在QGraphics Class
中的多类之间(scene与item,item与view等)的鼠标事件的坐标互传问题(直接使用转换函数即可,这里仅仅是举例),其class
并不支持信号与槽,这时就比较麻烦了。
1. QTimer
QTimer
作为定时器,我让其固定在多少ms后对子类实体的数据更新到父类即可,简单粗暴。
def __init__(self):
super(XXXX, self).__init__()
# --------------------------- Params Init --------------------------- #
# 0. Use timer dynamic update
self.timer = QTimer(self)
# 1. Init time event
self.my_time_event()
# ----------------------------- Timer Event ----------------------------- #
def my_time_event(self):
self.timer.timeout.connect(self.update_param)
self.timer.start(500) # 500ms update
def update_param(self):
pass
2. 信号与槽
这个方法未进行测试,这里说一下思路。前面提到了用不了信号与槽,因为对应的class不支持。
首先,要将该class进行QWidget?的继承,然后再进行数据的传输。