2014-09-11 2 views
0

Хорошо, мне потребовалось некоторое время, чтобы отслеживать это, но я понятия не имею, как его разрешить.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-центрально-виджет закомментирован, меню ведет себя нормально.

Любые идеи, что делать дальше, чтобы решить эту проблему?

+1

У меня нет этой проблемы, однако я подозреваю, что вы используете более поздние версии, чем я использую ежедневно. Я использую Qt-4.8.6 и vtk-5.10. Обе версии git. – drescherjm

+0

Спасибо за отзыв. Может быть, ошибка исчезнет в будущем. Я сообщу об этом команде vtk. Я использую Qt 5.3.1 и vtk 6.1.0. – B3ret

ответ

Смежные вопросы