3
我做這樣的事情信號處理程序不叫:Qt的:當信號被髮射
MyClass::MyClass(QWidget *parent) : QLabel(parent)
{
this->MyMenu = new QMenu();
QAction* act_del = new QAction(MyMenu);
act_delete->setText("MyAction");
MyMenu->addAction(act_del);
QObject::connect(act_del,SIGNAL(triggered()),this,SLOT(MySlot()));
}
void MyClass::MySlot()
{
//Not called
}
當信號被觸發的SLOT上的任何建議不叫。這裏是菜單的顯示位置:
void MyClass::contextMenuEvent(QContextMenuEvent *ev)
{
QPoint globalPos = this->mapToGlobal(ev->pos());
QAction* selectedItem = MyMenu->exec(globalPos);
if (selectedItem)
{
}
else
{
// nothing was chosen
}
}
有關爲什麼SLOT未被調用的任何建議?
您是否在與此相關的應用程序輸出中遇到錯誤? _MyClass_是否包含Q_OBJECT宏? – Zlatomir
此外,QObject :: connect返回布爾值 - 它值得檢查它是否返回true –
我們需要至少看到MyClass的信號和插槽定義,以及實際的連接調用。你可能在那裏有一個不匹配的地方(因此以前的評論檢查連接的返回值)。 –