Qt信号与槽的有关问题
Qt信号与槽的问题,求高手指教
------解决方案--------------------
还是找本书先看看吧。
Qt控件的信号,是已经存在的,你只要写一个槽和信号connect起来。
信号的参数是Qt输出的,是传给槽的。
信号和槽参数顺序要对应,信号的参数可以比槽多。参数只写类型(int ,QRect)。
------解决方案--------------------
应该写参数类型,不要写具体的值
connect(studentRadioButton, SIGNAL(toggled(bool)),
this, SLOT(setStudentFlag()));
也就是说,你只能写参数类型bool或int之类的,不能写具体的参数true或false或1、2、3之类的,因为连接的时候只是确定参数类型,具体的数值是程序运行后传进去的
------解决方案--------------------
2楼正解不能直接传参,只能写参数类型。信号的参数类型,和槽函数的参数类型一一对应才能正确传递
。其实这类问题书上写的很明白,QT文档里面也有说明,直接看QT DEMO吧。
- C/C++ code
编译通过,运行后 出错提示: [root@heiying edu_client]# ./edu_client Object::connect: No such signal QRadioButton::toggled(studentRadioButton->isChecked()) 根据void toggled ( bool checked ) 这个定义,这个样应该可以啊??? 请高手指教 请问要如何修改程序 ????? 下面是部分程序: QRadioButton *studentRadioButton = new QRadioButton("学生", this); studentRadioButton->setChecked (true); connect(studentRadioButton, SIGNAL(toggled(studentRadioButton->isChecked())), this, SLOT(setStudentFlag())); void Login::setStudentFlag(void) { QMessageBox::about(this,"about","11111"); } Qt 4.8.2手册中 QAbstractButton 类 (QRadioButton Inherits QAbstractButton) Signals void clicked ( bool checked = false ) void pressed () void released () void toggled ( bool checked )
------解决方案--------------------
还是找本书先看看吧。
Qt控件的信号,是已经存在的,你只要写一个槽和信号connect起来。
信号的参数是Qt输出的,是传给槽的。
信号和槽参数顺序要对应,信号的参数可以比槽多。参数只写类型(int ,QRect)。
------解决方案--------------------
应该写参数类型,不要写具体的值
connect(studentRadioButton, SIGNAL(toggled(bool)),
this, SLOT(setStudentFlag()));
也就是说,你只能写参数类型bool或int之类的,不能写具体的参数true或false或1、2、3之类的,因为连接的时候只是确定参数类型,具体的数值是程序运行后传进去的
------解决方案--------------------
2楼正解不能直接传参,只能写参数类型。信号的参数类型,和槽函数的参数类型一一对应才能正确传递
。其实这类问题书上写的很明白,QT文档里面也有说明,直接看QT DEMO吧。