Python 如何在pytq窗口中加载大型pkl文件?
当加载PyQt GUI时,我必须加载存储在本地HDD中的非常大的数据帧 问题是,GUI窗口会一直挂起,直到加载完大文件为止 下面是我的示例代码 我想我的悬挂问题可以通过使用线程和progressbar窗口来解决 但是,我发现的大多数线程示例都使用全局函数和变量 在我的情况下,self.pkl.file应该已经加载了数据。所以我应该找到合适的方法将实例抛出到线程类/函数 我希望您能为我的情况介绍一些示例代码或指南 先谢谢你Python 如何在pytq窗口中加载大型pkl文件?,python,multithreading,pyqt,Python,Multithreading,Pyqt,当加载PyQt GUI时,我必须加载存储在本地HDD中的非常大的数据帧 问题是,GUI窗口会一直挂起,直到加载完大文件为止 下面是我的示例代码 我想我的悬挂问题可以通过使用线程和progressbar窗口来解决 但是,我发现的大多数线程示例都使用全局函数和变量 在我的情况下,self.pkl.file应该已经加载了数据。所以我应该找到合适的方法将实例抛出到线程类/函数 我希望您能为我的情况介绍一些示例代码或指南 先谢谢你 #!/usr/bin/python # -*- coding: utf-
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
import pandas as pd
class Pkl():
def __init__(self):
self.file = pd.read_pickle('file.dat')
class MyWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MyWindow, self).__init__(parent)
self.setWindowTitle('MyWindow')
self.show()
self.pkl = Pkl()
def close_application(self):
self.close()
def main():
app = QtGui.QApplication(sys.argv)
GUI = MyWindow()
'''
w = QtGui.QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
'''
sys.exit(app.exec_())
if __name__ == '__main__':
main()
您需要使用QtCore.QThread,在您的情况下,将线程代码中应该读取的“pkl”对象传递给它。然后,当读取完成时,您需要从线程发出一个信号。该信号连接到您的主类/主线程,它将访问pkl对象,并可以根据需要更新GUI 用于代码检查。