2014-02-26 124 views
0
void Scene::mousePressEvent(QMouseEvent * iEvent) 
{ 
    Square temp; 

    emit GetSquareParameters(temp.color.red, temp.color.green, temp.color.blue, temp.size); 

    m_Squares.push_back(temp); 
} 

我从QMouseEvent获得鼠标坐标并需要从MainWindow的某些滑块获取参数。我在SceneMainWindow的SendSliderParams插槽中创建信号GetSquareParametersQt信号和插槽通过参考

信号和时隙中conected像
connect(ui->widget, SIGNAL(GetSquareParameters(int, int,int,int)), this, SLOT(SendSliderParams(int, int,int,int)));

我可以通过由用于信号和参考时隙后面PARAMS?如果不是我能如何实现我想要的行为?

回答

1

没有一个信号呼叫纯粹是1种方式多于1个时隙可以被连接到一个信号(反之亦然)

既可以使之成为真正的函数调用在这里可以作为参考

做通

或创建一个与回调相反方向的信号插槽连接

+1

或者您可以在信号中传递指针... – Archie

+0

connect(ui-> widget,SIGNAL(GetSquareParameters(int&,int&,int &,int&)),这个,SLOT(SendSliderParams(int&,int&,int&,int &))); 我连接这样,它帮助。 – YYY

+1

这是不正确的,有可能以相反的方向传递值,请参阅Qt中的d-bus示例。但是,这是非常不推荐的,它很难维持(床设计)。我会避免这个代价。 –