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

C++ 如何将Qt集成到现有的应用程序开发工作流中?,c++,visual-studio,qt,mfc,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 Versio

我已经玩了一周左右的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设计器创建了对话框。我还没有弄清楚的是如何将所有这些片段组合在一起。Qt设计器留给我一个.ui文件。我已经看到我可以使用uic将其编译成一个.h文件,但是其他部分,比如.cpp文件,在哪里?此外,如果我想将Qt部分编译成一个dll,它是按需加载的,那么这个过程是什么?把它放到上下文中,现有的应用程序有1000个用户可能想要使用的对话框,因此它们都在dll中,根据需要加载,对话框作为附加下载,如果你愿意的话,是一种插件,与主程序分开

这可能遗漏了很多,所以请带上问题

谢谢, Daniel

获得成功,它使Qt与VS无缝工作

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


虽然如果可以的话,我会用一个Qt main替换MFC main,并将功能移到另一个地方。AFAIK MFC对话框在Qt应用程序中应该可以很好地工作。

为了澄清,我不是在寻找一个“答案”,而是在寻找现有资源的链接。如果你有“答案”,那就太好了,但我并不真的期望……这个应用程序需要30多年的努力。到目前为止,完全重做还不是一个选项,但我们希望能够实现;-)我现在正在玩VS插件。你有关于这个东西的Qt文档的好链接吗?我经历了很多,但仍然觉得我没有我需要的。仍然只是玩东西,希望找到“啊哈”点…非常有趣的问题。我也想知道答案。虽然我很喜欢在Visual Studio工作,但我想知道在幕后发生了什么。我去了图书馆,在所有的地方…;-),并找到了两本书,涵盖了这些“封面下”的细节。这些书是Daniel Molkentin的《Qt 4:构建Qt应用程序的艺术》和Johan Thelin的《Qt开发的基础》。我会在博客上发布我的发现,并在这里发布一个链接。