QMenu项目在第一次点击时没有反应

时间:2017-05-15 18:40:46

标签: c++ qt

我对QMenu项目的反应有问题,我在QPushButton上创建。仅当我双击菜单项时才执行该操作。如果我先双击,之后只需点击一下即可。

在guiMain.cxx中,我通过settingsMenu.cxx类中的信号/插槽创建了一个QMenu,它无法访问gui元素或预定义的动作,并在guiMain.cxx中发回创建的QMenu对象。在发出QMenu之后,我在其中添加了我的预定义动作并将其连接到其他方法,这样做了一些事情。这个工作流程出了什么问题?

guiMain.cxx

void guiMain::createSignalAndSlots()
{
  connect(pushButton, SIGNAL(clicked()),
  (m_SettingsMenu.data(), SLOT(createViewSettingsMenuSlot()));

  connect(m_SettingsMenu.data(), SIGNAL(getViewSettingsMenuSignal(QMenu *)),
  this, SLOT(getViewSettingsMenuSlot(QMenu *)));
}


void guiMain::getViewSettingsMenuSlot(QMenu *menu)
{
 menu->addAction(actionResetView);

 connect(actionResetView, SIGNAL(triggered()),
         this, SLOT(resetViewsSlot()));
}

void guiMain::(resetViewsSlot()
{
  do something
}

settingsMenu.cxx

void settingsMenu::createViewSettingsMenuSlot()
{
  QWidget *widget= new QWidget();

  QWidgetAction *wa= new QWidgetAction(0);
  wa->setDefaultWidget(widget);

  QMenu *menu= new QMenu;
  menu->addAction(wa);

  emit getViewSettingsMenuSignal(menu);
}

感谢您的帮助。

0 个答案:

没有答案
相关问题