像a一样用slot和signal连接就对了
connect( ui->widget, SIGNAL( GetSquareParameters( int &, int &,int &,int &)), this, SLOT( SendSliderParams( int &, int &,int &,int &) ) );
如果我需要从 QMouseEvent
获取鼠标坐标,并且需要从 MainWindow
的一些 slider 获取参数。我在 Scene
中创建信号 GetSquareParameters
,在 MainWindow
中创建 SendSliderParams
槽。 Scene 是 QGLWidget
的子类。
我认为这不是实现它的正确方法。
也许我可以在 Mainwindow
中以某种方式连接 QMouseEvent
只有当事件发生在 widget(Scene) 中并调用像 widget.AddElement( red, green, blue,.. .)
。有没有不使用插槽和信号的另一种实现方式?
最佳答案
如果我正确理解您正在尝试做什么,那么以这种方式使用信号和插槽肯定是错误的,因为它会完全中断排队的连接。
您可能应该以另一种方式进行操作,即在 slider 值发生变化时向场景发送信号。然后将值的成员变量添加到场景中。所以场景总是知道 slider 值,不需要询问它们。
关于c++ - Qt 从 Mainwindow 字段中的 Mainwindow 获取 ui 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067726/