Хорошо, мне потребовалось некоторое время, чтобы отслеживать это, но я понятия не имею, как его разрешить.QMainMenu ведет себя странно, если QVTKWidget является центральным виджемом QMainWindow
Главное меню в моем приложении Qt/vtk ведет себя странно. Щелкнув поведение в меню выглядит следующим образом:
- Первый щелчок: поп вниз
- Второй щелчок: всплывают
- Третий щелчок: ничего не делает
- Четвертый щелчок: поп снова
Теперь это не было бы , что плохо, но проблема в том, что состояния запоминаются. Поэтому, если пользователь дважды нажимает меню, т. Е. Закрывает его вручную - следующий щелчок по строке меню ничего не сделает, даже если он использовал другой элемент графического интерфейса между ними. Это приводит к раздражающему ощущению пользователя.
я создал минимальный неисправный пример:
#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-центрально-виджет комментируются в и QVTKWidget-центрально-виджет закомментирован, меню ведет себя нормально.
Любые идеи, что делать дальше, чтобы решить эту проблему?
У меня нет этой проблемы, однако я подозреваю, что вы используете более поздние версии, чем я использую ежедневно. Я использую Qt-4.8.6 и vtk-5.10. Обе версии git. – drescherjm
Спасибо за отзыв. Может быть, ошибка исчезнет в будущем. Я сообщу об этом команде vtk. Я использую Qt 5.3.1 и vtk 6.1.0. – B3ret