背景:
博主在某个项目中,需要模拟每秒钟生成一行数据,所以有了该博客的想法,其中有线程的内容,为了防止主界面卡住
效果:
代码:
import sys
import threading
import time
import openpyxl
import pandas as pd
from PySide2.QtWidgets import QApplication, QWidget, QFileDialog
from PySide2.QtUiTools import QUiLoader
from PySide2.QtCore import QFile, QIODevice
sourceFilePath = "" # 源文件路径
targetFilePath = "" # 目标文件路径
source_data = None # 源文件数据
class MyWindow:
def __init__(self):
# 从文件中加载UI定义
self.load_ui()
# 绑定事件
# 给 选择源文件 按钮 绑定事件
self.ui.btn_selectSourceFile.clicked.connect(self.click_selectSourceFile)
# 给 选择目标文件 按钮 绑定事件
self.ui.btn_selectTargetFile.clicked.connect(self.click_selectTargetFile)
# 给 开始复制 按钮 绑定事件
self.ui.btn_runCopy.clicked.connect(self.click_runCopy)
# 连接文本编辑器的文本变化信号到滚动到底部的槽
self.ui.textEdit_log.textChanged.connect(self.scroll_to_bottom)
def load_ui(self):
# 从文件中加载UI定义
ui_file_name = 'UI/WriteMain.ui'
ui_file = QFile(ui_file_name)