我有一个到目前为止运行良好的应用程序。 今天,我已经将Ubuntu升级到18.04,因此重新安装了所有软件组件,包括Qt。
现在,我经历了一个漂亮的有线行为。 当我在调试版本中编译应用程序时,一切都正确。当我切换到发布版本时,一些组合框变得不可见。
奇怪的是,事件仍然有效,组合框仍然存在(但不可见)。
我知道这是因为我使用了installEventFilter()
与if(event->type() == QEvent::Enter)
一起使用,如果我用鼠标悬停组合框,它将更改其他一些小部件。尽管组合框不可见,但是当我将鼠标悬停在组合框所在的区域时,事件仍然起作用。
不幸的是,我不知道是什么导致了这个问题,所以我无法在一个最小的例子中重现它。
我的问题是:以前有人遇到过这样的事情吗? 并且:我应该从哪里开始寻找错误? (我无法调试它,因为对于调试版本而言一切都正确)
顺便说一句:我不知道这是否相关,但是当我第一次尝试运行该应用程序时,我收到一个错误,提示gl/gl.h
丢失了。向朋友谷歌寻求帮助后,我发现缺少OpenGL,因此我安装了它。
答案 0 :(得分:1)
设置组合框的属性时,我会去寻找未初始化的变量。通常在调试中,甚至将统一变量都设置为某个固定值。
或者您是否正在未在发行版本中编译的断言中设置属性?例如。像这样
Q_ASSERT(...)
()之间的代码只会在发布版本期间被跳过。