C++ 在Qt应用程序中连接GUI和计算
我正在编写一个Qt应用程序,它可以进行一些计算。我想在我的项目中分离两个部分:与GUI相关的部分和负责计算的部分。你能推荐最好的方法吗?请举例说明C++ 在Qt应用程序中连接GUI和计算,c++,qt,qt4,C++,Qt,Qt4,我正在编写一个Qt应用程序,它可以进行一些计算。我想在我的项目中分离两个部分:与GUI相关的部分和负责计算的部分。你能推荐最好的方法吗?请举例说明 我的想法是在main.cpp文件中执行: 我还需要在这两个部分之间建立连接。您可以使用GUI创建一个库,使用计算算法创建另一个库,并使用QT信号和插槽在它们之间交换数据。您需要创建maincompulation类,如图所示(主要继承自QObject,在类声明中包含Q_对象宏,并将一些方法标记为slot) 然后,您需要在GUI元素信号(mouseCl
我的想法是在main.cpp文件中执行:
我还需要在这两个部分之间建立连接。您可以使用GUI创建一个库,使用计算算法创建另一个库,并使用QT信号和插槽在它们之间交换数据。您需要创建
maincompulation
类,如图所示(主要继承自QObject
,在类声明中包含Q_对象
宏,并将一些方法标记为slot)
然后,您需要在GUI元素信号(mouseClick、buttonPress等)和MainComputation
对象插槽的实例之间连接信号和插槽。这是通过connect
语句完成的。类似这样
connect(mw.ui->btn,SIGNAL(clicked(bool)),&mc,SLOT(doSomething()));
有一个简单的例子,上面有很多可用的信息。谢谢你的回答,Jepessen。你能举个例子吗?我在哪里可以读到如何做?分开两个抽象,创建一个Qt对象,作为计算库的适配器,并在这个对象和ui之间交换数据。我也是以同样的方式做的你说了。但是引入信号和插槽有点复杂,因为我的GUI的主窗口细分为更小的对象(QWidgets)。然后你会有插槽连接到这些QWidgets信号。这看起来可能很复杂,但实际上只是自我记录。如果你在一个位置进行所有连接(通常在所有对象实例化之后),您基本上有一个接口的列表。如果认为您需要这种类型的处理,那么以后将其拆分为多个线程也非常简单。
connect(mw.ui->btn,SIGNAL(clicked(bool)),&mc,SLOT(doSomething()));