• 5425阅读
  • 2回复

求助:C++作为底层框架,对话框界面调用QT出错 [复制链接]

上一主题 下一主题
离线whuhhz
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-10
我使用VS2008编译器,主要的软件都已经用VS2008写完了
后面有人说界面太丑,想着用QT来编写一些对话框
我是用QT creator编写了界面  将 ui_xxx.h   xxx.cpp xxx.h 还有用moc.exe生成的cpp都加载到VS的工程里,再写了一个函数来调用,目前遇到以下情况:
1、每个对话框前都调用QApplication初始化——由于调用QT界面时,VS的界面不会被盖住,还可以点菜单来启动功能,如果前一个QT对话框不关闭,再起一个QT对话框,就会因为2次初始化QApplication报错
2、将QApplication声明一个静态变量,这样可以起多个QT对话框,但是QT对话框之间是互相压盖的,只能点最上面的对话框,而这样做最大的问题就是VS程序退出会报错。。。
3、调用QApplication的exec时貌似会把程序挂起,只能调用dlg自己的exec

求解决方案或者有没有人有类似的开发经验分享一下,只是单纯的想把程序里面的一些对话框的界面改下,用用QT的样式表。
离线whuhhz

只看该作者 1楼 发表于: 2011-03-10
我自己网上找了下 ,说用qtwinmigrate这个,但是我没找到在哪呀,QMFCAPP也没有找到
离线jnblue

只看该作者 2楼 发表于: 2011-03-13
问题描述的有些混乱。
首先,同一个QT进程已经有了一个静态QApplication对象qApp,你可以随时使用。
其次,QApplication的exec并不是挂起了,因为它和Dialog在一个线程中,只是进入了Dialog的消息循环中。
最后,qtwinmigrate是原来的大名鼎鼎的Qt Solution之一,后来大部分的Solution被Qt采纳到新版本中,少部分废弃,余下的几个项目目前仍在Qt-addons下活跃着,幸运的是你需要的qtwinmigrate还在,并且好像还不时的有人提供更新(只是最新版还没release)。
网址:http://qt.nokia.com/products/qt-addons/solutions-archive
BTW:“每个对话框前都调用QApplication初始化”--感觉你的架构好像有些问题,也可能是我没理解你描述的问题,建议多看一下QT方面的书,或者多阅读QAssistant,也许你会有新的架构。
快速回复
限100 字节
 
上一个 下一个