GUI /控制台应用程序代码管理(c++ /Qt)

GUI / console application code management (C++/Qt)

本文关键字:c++ Qt 代码 控制台 应用程序 GUI 管理      更新时间:2023-10-16

我正在设计一个应用程序,应该作为GUI或控制台(命令行)应用程序工作。一次一种模式。当应用程序作为控制台编译时,它不应该使用任何GUI库。由于我是第一次做这样的事情,我想问一下这种情况下的陷阱、技巧和技巧。什么方法是最好的?简单地使用宏像#define withGUI 1切换?还是制作客户机/服务器解决方案?

有一种设计模式叫做模型-视图-控制器(MVC)。这将数据的表示与数据本身的模型分离开来,控制器充当委托,并通过对模型的更新来控制视图的更新。

Qt提供了一个类似的系统,但只是使用模型和视图。

这里要关注的重点是将数据模型与其可视化表示分离开来。做到这一点,维护应用程序的GUI和控制台版本将变得简单。

有了信号和插槽,就很简单了;视图(GUI或命令行)所做的任何更改都会导致一个信号被模型拾取。同样,当模型中的数据发生变化时,向连接的视图发出信号,以更新该数据的表示。

我会将业务逻辑和GUI完全分离到独立的库中——每个库一个。在控制台应用程序模式下,我将链接到包含逻辑部分的唯一库,否则链接到两个库。这样,您就不需要在代码中到处放置#ifdef-s,从而使其难以阅读。