簡體   English   中英

如果QVTKWidget是QMainWindow的中央小部件,則QMainMenu的行為會很奇怪

[英]QMainMenu behaves weirdly if QVTKWidget is the central widget of QMainWindow

好的,我花了一些時間來跟蹤它,但我不知道如何解決。

我的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被注釋掉,則菜單的行為正常。

有什么想法下一步要解決嗎?

Qt 5.4.1和vtk 6.2.0上不再發生錯誤。

(vtk錯誤跟蹤鏈接: http ://www.vtk.org/Bug/view.php? id= 15013)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM