【发布时间】:2016-10-24 14:24:28
【问题描述】:
我的代码有一个奇怪的行为:
我想设置一个信号槽连接。当我没有任何参数时,它可以正常工作。但是当我使用像 int 这样简单的参数时,我的连接不起作用。 有人知道为什么会这样吗?
谢谢。
这行得通:
Chart.h
void signalForUI();
Chart.cpp
emit signalForUI();
Userinterface.h
public slots:
void UI_schreibtWas();
Userinterface.cpp
connect( ui.Diagram , SIGNAL( signalForUI() ),
this ,SLOT (UI_schreibtWas())) ;
...
void UserInterface::UI_schreibtWas()
{ qDebug() << "ich schreibe was- ohne "; }
这不是:
Chart.h
void signalForUI(const int &X_send);
Chart.cpp
emit signalForUI(5);
Userinterface.h
public slots:
void UI_schreibtWas(const int &X_send);
Userinterface.cpp
connect( ui.Diagram , SIGNAL( signalForUI(const int &X_send) ),
this ,SLOT (UI_schreibtWas(const int &X_send))) ;
...
void UserInterface::UI_schreibtWas(const int &X_send)
{ qDebug() << "ich schreibe was - int "; }
【问题讨论】:
-
删除连接中的
X_send。只需使用参数类型。 -
所以把
connect( ui.Diagram , SIGNAL( signalForUI(const int &X_send) ), this ,SLOT (UI_schreibtWas(const int &X_send)))变成connect( ui.Diagram , SIGNAL( signalForUI(const int &) ), this ,SLOT (UI_schreibtWas(const int &))) ;
标签: c++ qt signals-slots