Qt 5.6的鼠标事件或位置问题

时间:2016-06-16 11:40:06

标签: c++ qt qt5.6

我在Windows的Qt应用程序上遇到了一个非常奇怪的UI问题。从Qt 5.3.1升级到5.6.0后,一些小部件变得无法点击,直到我调整它们的父级(QDialog,QWizard或简单的QSplitter)。这包括QPushButtons,QRadioButtons,QCheckBoxes等。奇怪的是,这只发生在我和其他开发人员的机器上 - 所有其他开发人员都没有遇到这个问题。我认为它可能与安装了多个版本的Qt有关(我有4.8。,5.3.1和5.6.0) - 但这似乎不太可能(加上所有其他开发人员也有多个版本)。我们在Windows 7上使用VisualStudio 2015。

我附上了一些小代码,可以100%地为我重现问题但在其他机器上可能会也可能不会。对我来说发生了什么,当我点击“点击”按钮并弹出QWizard时,我无法点击“取消”按钮(一旦启用它也没有“完成”按钮) - 鼠标事件似乎没有注册所有。不过我可以点击右上角的X.如果我向任何方向调整QWizard的大小,那么我可以单击“取消”按钮。

一个可能的线索是,在有这个问题的QDialogs上,QComboBoxes表现得非常奇怪 - 弹出视图显示在一个奇怪的位置(下面的截图)。同样,如果我调整父级的大小,弹出视图将显示在预期位置。这可能表明某个位置或父对象在某处(相对位置)没有正确设置的问题,但我不知道从哪里开始。

它似乎与设置父节点有关,因为使用附加的示例,如果我添加向导页面:

from django.db.models import Sum

summary = (Invoice.objects
              .annotate(m=Month('date'))
              .values('m')
              .annotate(total=Sum('total'))
              .order_by())

OR

wizard->addPage(new GeneralPropertiesPage(QSet<QString>() << "test", this));

使组合框的弹出视图如下所示: Capture2

使用时:

wizard->addPage(new GeneralPropertiesPage(QSet<QString>() << "test", NULL));

使它看起来像这样: enter image description here

但仍然不确定根本原因是什么。文件附在下面。

The source file and header

0 个答案:

没有答案