Qt在Windows上启用GUI在linux上禁用GUI 我正在为我的工作做一个简单的C++应用程序,它需要在Windows和Linux上运行。在Windows上运行时,它应该显示一个简单的GUI,在Linux上运行时,它应该使用文本UI(因为Linux计算机根本不使用任何GUI)

Qt在Windows上启用GUI在linux上禁用GUI 我正在为我的工作做一个简单的C++应用程序,它需要在Windows和Linux上运行。在Windows上运行时,它应该显示一个简单的GUI,在Linux上运行时,它应该使用文本UI(因为Linux计算机根本不使用任何GUI),qt,Qt,我想知道我是否可以使用Qt来编写应用程序(因为它是跨平台的),并使用“ifndef WIN32”将Linux上的GUI使用替换为打印输出到STDOUT 如有其他建议,将不胜感激。程序从xml文件中读取一些属性,并根据这些属性(访问套接字、环境变量等)运行一些测试。我的目标是为每个平台编写一个静态编译的项目(以获得不可靠的可执行文件),并避免创建不同的项目 谢谢。当然有可能,但尽量避免使用ifdef 一种方法是在非GUI类中隔离所有核心功能(数据处理、网络等)。然后编写两组用于表示的类:一个基于Q

我想知道我是否可以使用Qt来编写应用程序(因为它是跨平台的),并使用“ifndef WIN32”将Linux上的GUI使用替换为打印输出到STDOUT

如有其他建议,将不胜感激。程序从xml文件中读取一些属性,并根据这些属性(访问套接字、环境变量等)运行一些测试。我的目标是为每个平台编写一个静态编译的项目(以获得不可靠的可执行文件),并避免创建不同的项目


谢谢。

当然有可能,但尽量避免使用ifdef

一种方法是在非GUI类中隔离所有核心功能(数据处理、网络等)。然后编写两组用于表示的类:一个基于
QWidget
s,另一个只进行文本输入/输出

最后,在
main()
中使用
#ifdef
选择要使用的“演示”类(并在非GUI的
QCoreApplication
和GUI的
QApplication
之间切换)

不要将
#ifdef
建立在
WIN32
上,使用自定义变量。这样,您就可以在更熟悉的环境中运行和测试这两个版本