我发现了几个与此类似的问题,例如:
但大多数示例和答案都在 1 个 GUI 线程和 1 个数据处理线程上。
让我解释一下我的情况。
我有 3 节课:
- 类 MainWindow(从类继承
QMainWindow
并充当主 GUI) - class LogInWidget(继承自
QWidget
class。这个类由所有的用户名/密码字段+一个进度条组成,请看下图)
3.class DataTableWidget(继承自QWidget
class.consist组成一个显示几十万数据的表)
该程序的设计目的是一旦用户通过 登录该程序LogInWidget
,他将能够看到由DataTableWidget
.
我使用.setCentralWidget
方法来设置LogInWidget
和DataTableWidget
。(即如果用户密码正确,我使用
table = DataTableWidget ()
self.setCentralWidget(table)
显示表格。
我的问题是:当用户登录时,在他可以看到数据表之前有一个很大的 GUI 冻结,因为有太多的数据条目要通过表显示。
所以我想LogInWidget
在程序完成加载表格之前显示一个繁忙的进度条(在我的)。
我想用Qthread
它来完成它,但是由于这两个任务,显示进度条以及创建DataTableWidget
和设置为中央小部件都是 GUI 任务,我应该如何处理它?