应用程序崩溃问题第二次单击QToolButton的菜单箭头

时间:2011-08-08 09:43:29

标签: qt

在我的APPlication中,我必须在Qtable小部件中显示过滤器选项(作为xls中的过滤器选项)      我使用了工具Button(带有属性“QToolButton :: MenuButtonPopup”)来显示菜单列表和 在首次单击菜单箭头时,它应显示菜单列表和任何菜单的选择,它应该只显示具有文本的行。 此功能正常。         但是,如果从菜单列表中选择了Nothing,并且用户第二次单击了菜单箭头,则应该隐藏列表,但在我的情况下 应用程序崩溃给出错误:

在QList :: operator []中ASSERT失败:“索引超出范围”,文件........ \ Qt \ 2010.04 \ qt \ include / QtCore /../../ src / corelib / tools / qlist.h,第447行

我写了以下代码:

 QToolButton *lToolButton = new QToolButton();
 lToolButton->setPopupMode(QToolButton::MenuButtonPopup);
 lToolButton->setAutoRaise(true);
 lToolButton->setText("Filter");
 QMenu *lMenu = new QMenu();
 QAction *lAction = new QAction("All",this);
 lMenu->addAction(lAction);
 lToolButton->setMenu(lMenu);

请让我知道我的编码有什么问题。

1 个答案:

答案 0 :(得分:0)

你可以在调试器中运行你的应用程序并找到代码中的哪一行(不是在Qt的代码中)错误发生了吗?那么问题应该是因为更明显。