我发现了几个与此类似的问题,例如:
但大多数示例和答案都在 1 个 GUI 线程和 1 个数据处理线程上。
让我解释一下我的情况。
我有 3 节课:
- 类 MainWindow(从类继承
QMainWindow并充当主 GUI) - class LogInWidget(继承自
QWidgetclass。这个类由所有的用户名/密码字段+一个进度条组成,请看下图)

3.class DataTableWidget(继承自QWidgetclass.consist组成一个显示几十万数据的表)
该程序的设计目的是一旦用户通过 登录该程序LogInWidget,他将能够看到由DataTableWidget.
我使用.setCentralWidget方法来设置LogInWidget和DataTableWidget。(即如果用户密码正确,我使用
table = DataTableWidget ()
self.setCentralWidget(table)
显示表格。
我的问题是:当用户登录时,在他可以看到数据表之前有一个很大的 GUI 冻结,因为有太多的数据条目要通过表显示。
所以我想LogInWidget在程序完成加载表格之前显示一个繁忙的进度条(在我的)。
我想用Qthread它来完成它,但是由于这两个任务,显示进度条以及创建DataTableWidget和设置为中央小部件都是 GUI 任务,我应该如何处理它?