在Qt应用程序中连接GUI和计算

时间:2013-09-04 14:16:44

标签: c++ qt qt4

我正在编写一个Qt应用程序来进行一些计算。我希望在我的项目中分离2部分:与GUI相关的部分和负责计算的部分。你能推荐最好的方法吗?赞赏的例子。


我的想法是在 main.cpp 文件中执行此操作:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv); 

    MainWindow mw; // This is responsible for GUI
    mw.show();

    MainComputation mc; // This is responsible for calculations

    return app.exec();
}

我还需要建立这两部分之间的联系。

2 个答案:

答案 0 :(得分:1)

您可以使用GUI创建库,使用计算算法创建另一个库,并使用QT信号和插槽在它们之间交换数据。

答案 1 :(得分:1)

您需要创建MainComputation类,如图所示here(主要继承自QObject,在类声明中包含Q_OBJECT宏,并将某些方法标记为插槽)

然后,您需要在GUI元素信号(mouseClick,buttonPress等等,检查每个小部件可用信号)和MainComputation个对象插槽的实例之间连接信号和插槽。这是通过connect语句完成的。有点像这样

connect(mw.ui->btn,SIGNAL(clicked(bool)),&mc,SLOT(doSomething()));

有一个简单的例子,qt docs提供了大量信息。