0

これを追跡するのにしばらく時間がかかりましたが、解決方法がわかりません。

Qt/vtk アプリケーションのメイン メニューの動作がおかしいです。メニューのクリック動作は次のとおりです。

  • 最初のクリック: ポップ ダウン
  • 2 回目のクリック: ポップアップ
  • 3 回目のクリック: 何もしません
  • 4 回目のクリック: 再びポップ ダウン

これはそれほど悪くはありません、問題は状態が記憶されていることです。そのため、ユーザーがメニューを 2 回クリックした場合 (つまり、手動で閉じた場合)、次にメニュー バーをクリックしても、その間に他の 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 がコメント アウトされている場合、メニューは正常に動作しています。

これを解決するために次に何をすべきか考えていますか?

4

1 に答える 1

0

Qt 5.4.1 および vtk 6.2.0 ではバグは発生しなくなりました。

(vtk バグ追跡リンク: http://www.vtk.org/Bug/view.php?id=15013 )

于 2015-03-27T04:03:56.073 に答える