好的,我花了一段时间才找到它,但我不知道如何解决它。
我的Qt/vtk应用程序中的主菜单很奇怪。单击菜单上的行为如下:
现在的情况不会那么糟糕,但问题是人们会记住这些州。因此,如果用户单击菜单两次--即手动关闭菜单--下一次单击菜单栏将不会做任何事情,即使他在其中使用了其他GUI元素。这导致了一种恼人的用户体验。
我创建了一个最小的失败示例:
#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被注释掉,则菜单正常运行。
有什么好办法解决这个问题吗?
发布于 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)
https://stackoverflow.com/questions/25797486
复制相似问题