在预先存在的x平台项目中使用Qt?
问题描述:
我有一个在Mac,Linux和Windows上运行的现有跨平台项目。在预先存在的x平台项目中使用Qt?
现在,我想添加一个'本地'用户界面 - 显示一些弹出窗口(要求用户凭据)和FileOpen对话框的能力。本地我的意思是我想要使用文件打开对话框中的系统构建 - 所以在Mac上显示mac文件查找程序,并在Windows上显示shell文件打开窗口。
Qt似乎很适合 - 它的示例显示它可以在所有平台上显示正确的对话框。
但是,所有可用的Qt样本都是从基本级开始的 - 假设整个项目都是在Qt中开发的。是否有可能以更特别的方式初始化和使用Qt: - 我想通过一些简单的导出(想想ShowLoginPopup)将我所有的Qt UI代码保存在单独的dll/dylib/so文件中。
答
我认为最简单的方法就是反过来 - 让Qt GUI驱动应用程序的其余部分。 Qt是基于事件的,并且依赖于它的事件循环,所以你需要保持它的运行。
这真的不是一个选项。该应用程序已经有一个事件循环和重构,现在将是一个巨大的皮塔饼。当组合多个坚持自己的事件循环的框架时 - 也许我可以在一个线程上运行Qt。我不知道在Windows以外的操作系统上甚至可以使用循环。 – 2009-12-17 08:49:59
@Chris Becke ...如果程序中的主要(第一个)线程没有运行其UI代码,Qt代码就会感到不安。但是,除此之外,它在线程化环境中也可以很好地工作。 – 2009-12-17 17:22:56
您的应用正在运行什么事件循环? Qt与glib事件循环兼容。否则,你可以像cjhuitt所说的那样进行线程化。 您是否考虑过在两个独立客户端之间使用XML RPC或DBUS连接的客户端/服务器体系结构? – e8johan 2009-12-18 07:46:21