1

我正在创建一个 QSystemTrayIcon 托盘菜单。它的上下文菜单有几个我需要识别的操作。

public slots:
    void s_showNote();

void Traymenu::createMainContextMenu(){
  ...
  std::string noteTitle = m_noteList[i]->getTitle();

  QString menuEntryName = QString::fromStdString(noteTitle);
  QAction *openNote = m_mainContextMenu.addAction(menuEntryName);

  QObject::connect(openNote,SIGNAL(triggered() ),this,SLOT(s_showNote()) );
      QVariant noteID;
      noteID.setValue(m_noteList[i]->getID());
      openNote->setData(noteID);

错误是

QObject::connect: No such slot QSystemTrayIcon::s_showNote()

上面的所有代码都是我的类定义的一部分,它继承自QSystemTrayIcon. 如何调用 SLOT?

4

1 回答 1

0

您似乎至少有两个问题正在进行:

  • 将 Q_OBJECT 用于 QObject 派生类。

  • 您将需要相应地重新运行 qmake。

至于第一点,请在未来使用 C++11 和至少 Qt 5.2,因为在这种情况下,你会得到一个静态编译器时间错误,这对于避免这些繁琐的问题很方便。

于 2014-02-24T04:08:38.490 回答