• 4015阅读
  • 3回复

[提问]Windows对话框程序 右键菜单与下拉列表框点开后自动收起 [复制链接]

上一主题 下一主题
离线mgrmhc
 

只看楼主 倒序阅读 楼主  发表于: 2015-10-16
基本信息:我在Windows平台,用Qt Creator(2.3.0版,基于Qt4.7.4),发布了一个对话框程序。
问题表现:在客户电脑上刚开始运行的时候一切正常,运行三四天后,界面中的下拉列表框(ComboBox)在点开后,两三秒后会自己退出;点击右键弹出的菜单,也在两三秒后自动退出。而程序的其他功能都运行正常,内存足够使用且未发现泄漏情况。 运行其他应用程序也无此问题。重新启动又一切正常了。
已采取的措施:在客户机器上装上同样的Qt Creator开发环境,问题依旧。

仔细查过程序,没发现内存泄漏之类的错误,况且,如果程序本身有问题,则刚开始运行的时候就会表现出来,为什么在正常运行了三四天之后才出现问题?

问题:没有可能是程序版权的问题呢?程序是11年在qt官网上下载安装的测试版本,后来没升级,也没购买版权。 也许是其他原因,我一直搞不明白,请各位同行指点,谢谢!
离线彩阳

只看该作者 1楼 发表于: 2015-10-17
两三天才重现的bug,不知道要稳定重现需要多少天的努力……
可以这样,开命令提示符,一旦自动退出的话,我想一般程序都会有错误信息的。希望你能找到错误信息,而不是靠猜。
上海Qt开发联盟,热忱地欢迎你的加入!
离线mgrmhc

只看该作者 2楼 发表于: 2015-10-18
回 彩阳 的帖子
彩阳:两三天才重现的bug,不知道要稳定重现需要多少天的努力……
可以这样,开命令提示符,一旦自动退出的话,我想一般程序都会有错误信息的。希望你能找到错误信息,而不是靠猜。(2015-10-17 09:37)嬀/color]

Hi,你好~
这个问题我真不知从何处下手,出问题的地方一个是qt控件,一个是代码创建的右键菜单,都是底层(封装好)的东西,它自己退出,真的搞不清楚了。
离线mgrmhc

只看该作者 3楼 发表于: 2015-11-09
问题的原因找到了。

我的程序整体是个分割的界面,其中一个区域可以显示多个form或者view
(派生自QGraphicsView,对应着一个scene(QGraphicsScene对象,里面有多个对话框定时hide和show)),但一次只显示一个form或者view,其他的form会隐藏起来。

当scene里的对话框定时hide和show时,即使view是隐藏起来的,也会导致其他form都自动刷新一遍,因此才出现了其他form中下拉列表自动收起的情况。

解决方法:
scene里的对话框不再用定时器定时hide和show,而是调用scene的update方法,就不会出现这些问题了。

致谢:
谢谢论坛中各位大侠的关注与指点,在下的功力实在浅薄,还需要继续修炼。
快速回复
限100 字节
 
上一个 下一个