【发布时间】:2016-04-15 22:17:55
【问题描述】:
加载 PyQt GUI 时,我必须加载存储在本地 HDD 中的非常巨大的 pandas 数据帧。
问题是,GUI 窗口挂起,直到加载大文件完成。
以下是我的示例代码。
我认为我的挂起问题可以通过使用线程和进度条窗口来解决。
但是,我发现的大多数线程示例都使用全局函数和变量。
在我的情况下,self.pkl.file 应该已经加载了数据。所以我应该找到正确的方法将实例扔给线程类/函数。
希望您针对我的情况介绍几个示例代码或指南。
提前谢谢你。
#!/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()
【问题讨论】:
标签: python multithreading pyqt