我正在创建一个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?
答案 0 :(得分:0)
您似乎至少有两个问题在进行:
将Q_OBJECT用于QObject派生类。
您需要相应地重新运行qmake。
关于第一点,请在将来使用C ++ 11和至少Qt 5.2,因为在这种情况下,您将获得静态编译器时间错误,这对于避免这些繁琐的问题非常方便。