c++ - 如何将 Qt 集成到现有的应用程序开发工作流程中?

标签 c++ visual-studio qt mfc

我已经使用 Qt 玩了一个星期左右,目的是将 Qt 对话框集成到现有应用程序中。我想出了从我的 MFC 应用程序中使用基本的 Qt 消息框,例如:

extern "C" __declspec(dllexport) bool showDialog( HWND parent )
{
    QWinWidget win( parent );
    win.showCentered();
    QMessageBox::about( &win, "About QtMfc", "QtMfc Version 1.0\nCopyright (C) 2003" );

    return TRUE;
}

我使用 Qt Designer 创建对话框。我还没有想出的是如何将所有这些部分组合在一起。 Qt Designer 留给我一个 .ui 文件。我已经看到我可以使用 uic 将其编译为 .h 文件,但是其他部分在哪里,比如 .cpp 文件?此外,如果我想将 Qt 部分编译为按需加载的 dll,该过程是什么?把它放在上下文中,现有的应用程序有 1000 个用户可能想要使用的对话框,因此它们都存在于根据需要加载的 dll 中,并且对话框作为额外的下载,如果你愿意,可以作为插件,与主程序。

这可能遗漏了很多,所以请提出问题。

谢谢, 丹尼尔

最佳答案

获取VS plugin , 它使 Qt 与 VS 无缝工作。

它将 ui 文件编译成类,然后您可以从代码中调用这些类。您还可以在 C 代码中编写对话框、菜单等。因为它使用 sizer 进行布局,所以没有很多 X-Y 坐标来管理放置每个组件。

不过,如果可以的话,我会采用一种大爆炸的方法,用 Qt main 替换 MFC main 并将功能转移过来。 AFAIK MFC 对话框应该在 Qt 应用程序中完美运行。

关于c++ - 如何将 Qt 集成到现有的应用程序开发工作流程中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880764/

相关文章:

c - 显式转换总是与隐式转换相同吗?

mysql - 用户 '' 访问被拒绝(使用密码 : NO) but it does have password

c# - 使用大量的 `try` 而不是更多的 `if` 是否可以?

c++ - QT自动保存截图带命名模板

c++ - 诺基亚 Qt 中的进度条?

c++ - 通用 lambda 与标准模板函数(使用什么以及何时使用)

c++ - C++ 表达式中尾随流操纵符的含义

c++ - 编译器会在析构函数中优化 memset 吗?

c++ - Windows 上的直接文件系统函数调用

c++ - QSettings 子类没有任何键