簡體   English   中英

Qt:發出信號時不調用信號處理程序

[英]Qt: the signal handler is not called when the signal is emitted

我正在做這樣的事情:

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
}

關於何時觸發SIGNAL的任何建議都不會被調用。 這是顯示菜單的位置:

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宏以使信號槽連接起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM