如何将实时数据传递到PyQT表并更新TableView

2024-05-19 02:11:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用PyQT5为现有GUI实用工具构建一个选项卡,该工具将以各种表格的形式显示实时数据,这些表格从主窗口接收更新后的数据到选项卡。我能够创建一个初始qabstracttablemodel并成功地在选项卡中显示它,还能够使用我的新数据函数以我需要的频率将信号链接到选项卡。这个新的_data函数自动更新每个选项卡的数据,并将其作为本地1D数组保存在函数中

我现在希望能够实施的是:

  1. 每次更新表模型时,将新_数据中的局部变量传递给表模型的一种方法

  2. 该函数将在每次输入时使用温度和功率阵列的新值自动更新表视图,使用signals and emit或dataChanged内置函数

我确信它相当简单,但我在选项卡结构中找不到这种确切方法的示例。我也没有经验知道如何正确连接信号或实现我想要的

class SummaryTableTab(QMainWindow):

    _update_data = Signal(dict)
    _new_data = Signal(list)

    data = [[None]*2]*2

    temperatures = [None]*NUM_TEMPS
    powers = [None]*NUM_POWERS

    def __init__(self):
    
        super().__init__(title='Tables', parent=parent)
    
        layout = ULayout(spacing=4, margins=8)
        self.setLayout(layout)

        ql_data = self.data
        ql_widg = ql_Widget(ql_data)
    
        layout.addWidget(ql_widg)
    
    def new_data(self, data):
    
        temperatures = data['Temperatures'] 
        for i in range(0, len(temperatures)):
            self.temperatures[i] = temperatures[i]
    
        powers = data['Powers']
        for i in range(0,len(powers)):
            self.powers[i] = powers[i] 
        
        self.data = [self.temperatures, self.powers]
    
        self._update_data.emit({
            'temps': self.temperatures,
            'powers': self.powers,
        })

Tags: 数据方法函数模型selfnonedata信号

热门问题