本文主要介绍一个将QThread设计为MainWindow的友元的软件设计示例,并探讨这种设计的利弊。
一、应用场景
现需开发一个GUI软件,用户通过在界面上设置各种参数,然后控制外部设备进行一系列操作和运算,最后在界面上显示操作和运算结果。这个动作需要循环进行,用户在循环过程中,可以通过界面的控件修改参数。
demo界面如下:
如上图,点击button"Run"将开启一个线程,该线程会获取MainWindow各个参数空间的值,然后调用外部接口,最后将结果输出到MainWindow的显示窗口。
二、软件架构
使用QCreator新建一个MainWindow模版的GUI工程。然后添加一个QTread的子类——WorkTread。整个软件的核心为MainWindow类(界面)和WorkThread类(线程)。
1,MainWindow的代码如下:
#ifndef MAINWINDOW_H
#define MAI