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
}
}
슬롯가 호출되지 않는 이유에 대한 어떤 제안?
관련 애플리케이션 출력에 오류가 있습니까? _MyClass_에 Q_OBJECT 매크로가 있습니까? – Zlatomir
또한 QObject :: connect는 부울 값을 반환합니다. true를 반환하는지 확인해야합니다. –
적어도 실제 연결 호출은 물론 MyClass의 신호 및 슬롯 정의를 확인해야합니다. 어딘가에 잘못 찾았을 것입니다 (따라서 연결의 반환 값을 확인하는 이전의 주석). –