首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果QMainMenu是QMainWindow的中心部件,那么QVTKWidget的行为会很奇怪。

如果QMainMenu是QMainWindow的中心部件,那么QVTKWidget的行为会很奇怪。
EN

Stack Overflow用户
提问于 2014-09-11 21:47:38
回答 1查看 357关注 0票数 0

好的,我花了一段时间才找到它,但我不知道如何解决它。

我的Qt/vtk应用程序中的主菜单很奇怪。单击菜单上的行为如下:

  • 第一次点击:向下弹出
  • 第二次点击:弹出
  • 第三次点击:什么也不做
  • 第四次点击:再次弹出

现在的情况不会那么糟糕,但问题是人们会记住这些州。因此,如果用户单击菜单两次--即手动关闭菜单--下一次单击菜单栏将不会做任何事情,即使他在其中使用了其他GUI元素。这导致了一种恼人的用户体验。

我创建了一个最小的失败示例:

代码语言:javascript
复制
#include <QAction>
#include <QApplication>
#include <QLabel>
#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>

#include <QVTKWidget.h>

int main(int argc, char** argv)
{
  QApplication app(argc, argv);

  QMainWindow mainWindow;
  QMenu *menu = mainWindow.menuBar()->addMenu("TestMenu");
  QAction *action = menu->addAction("TestAction");

  // Setting the central widget to QVTKWidget, produces a weirdly
  // behaving menu bar:
  //   First click: pop down
  //   Second click: pop up
  //   Third click: does nothing
  //   Fourth click: pop down again
  mainWindow.setCentralWidget(new QVTKWidget());

  // Setting the central widget to any other QWidget, like QLabel, produces a
  // normally behaving menu bar:
  //   First click: pop down
  //   Second click: pop up
  //   Third click: pop down again
  // mainWindow.setCentralWidget(new QLabel("TestLabel"));

  mainWindow.show();

  return app.exec();
}

如果QLabel-central-widget被注释,而QVTKWidget-central-widget被注释掉,则菜单正常运行。

有什么好办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 04:03:56

QT5.4.1和vtk 6.2.0上不再出现Bug。

(vtk bug跟踪器链接:http://www.vtk.org/Bug/view.php?id=15013)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25797486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档