美文网首页
pyqt5 python3 创建表格并实时更新数据例子

pyqt5 python3 创建表格并实时更新数据例子

作者: abelweiwencai | 来源:发表于2018-01-10 23:21 被阅读4694次
    # code:utf-8
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    import sys
    import time
    
    
    class MyTable(QTableWidget):
        def __init__(self, parent=None):
            super(MyTable, self).__init__(parent)
            self.setWindowTitle("各个市场比特币实时行情")  # 设置表格名称
            self.setWindowIcon(QIcon("ok.png"))  # 设置图标(图片要存在)
            self.resize(600, 200)  # 设置表格尺寸(整体大小)
            self.setColumnCount(5)  # 设置列数
            self.setRowCount(5)  # 设置行数
            # self.setColumnWidth(0, 200)  # 设置列宽(第几列, 宽度)
            # self.setRowHeight(0, 100)  # 设置行高(第几行, 行高)
         
            column_name = [
                'ETH/BIC',
                'column1',
                'column2',
                'column3',
                'column4',
            ]
            self.setHorizontalHeaderLabels(column_name)  # 设置列名称
            row_name = [
                'binance',
                'okex',
                'bitfinex',
                'bittrex',
                'bithumb',
            ]
            self.setVerticalHeaderLabels(row_name)  # 设置行名称
    
        def update_item_data(self, data):
            """更新内容"""
            self.setItem(0, 0, QTableWidgetItem(data)) # 设置表格内容(行, 列) 文字
    
    
    class UpdateData(QThread):
        """更新数据类"""
        update_date = pyqtSignal(str)  # pyqt5 支持python3的str,没有Qstring
    
        def run(self):
            cnt = 0
            while True:
                cnt += 1
                self.update_date.emit(str(cnt))  # 发射信号
                time.sleep(1)
    
    
    if __name__ == '__main__':
        # 实例化表格
        app = QApplication(sys.argv)
        myTable = MyTable()
        # 启动更新线程
        update_data_thread = UpdateData()
        update_data_thread.update_date.connect(myTable.update_item_data)  # 链接信号
        update_data_thread.start()
    
        # 显示在屏幕中央
        desktop = QApplication.desktop()  # 获取坐标
        x = (desktop.width() - myTable.width()) // 2
        y = (desktop.height() - myTable.height()) // 2
        myTable.move(x, y)  # 移动
    
        # 显示表格
        myTable.show()
        app.exit(app.exec_())
    

    相关文章

      网友评论

          本文标题:pyqt5 python3 创建表格并实时更新数据例子

          本文链接:https://www.haomeiwen.com/subject/piianxtx.html