Qt在Windows上禁用GUI,在Linux上禁用GUI

时间:2011-07-15 20:38:19

标签: qt

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

我想知道我是否可以使用Qt来编写应用程序(因为它的跨平台)并使用" #ifndef WIN32"

将打印输出上的GUI用法替换为STDOUT

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

谢谢。

1 个答案:

答案 0 :(得分:2)

这当然是可能的,但尽量避免使用#ifdef

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

要进行整理,请使用#ifdef中的main()来选择要使用的“演示”类(并在非{GUI QCoreApplicationQApplication之间切换用于GUI)。

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