【问题标题】:Qt enaubling GUI on Windows disabling GUI on linuxQt 在 Windows 上启用 GUI 在 Linux 上禁用 GUI
【发布时间】:2011-07-15 20:38:19
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: qt


    【解决方案1】:

    当然有可能,但尽量避免#ifdefs。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 2016-02-02
      相关资源
      最近更新 更多