将信号安装到Qt中的插槽
在单击另一个将信号安装到Qt中的插槽,qt,button,signals-slots,Qt,Button,Signals Slots,在单击另一个QPushButton后,我试图启用一个QPushButton,我遇到了一个问题。第一个QPushButton可以发出clicked()信号,而第二个QPushButton只有setEnabled(bool)和setDisabled(bool)格式的插槽 基本上,我正在努力 connect(ui->pbViewVolume, SIGNAL(clicked()), ui->pbSaveAsImage, SLOT(setEnabled(true)));
QPushButton
后,我试图启用一个QPushButton
,我遇到了一个问题。第一个QPushButton
可以发出clicked()
信号,而第二个QPushButton
只有setEnabled(bool)
和setDisabled(bool)
格式的插槽
基本上,我正在努力
connect(ui->pbViewVolume, SIGNAL(clicked()),
ui->pbSaveAsImage, SLOT(setEnabled(true)));
由于发送参数少于插槽的信号是不可能的,我如何才能最好地做到这一点?我看到的唯一方法是为我的main窗口
like创建一个公共插槽
void EnableSaveAsImageButton(){
ui->pbSaveAsImage->setEnabled(true);
}
但是我不想用这种垃圾函数填充我的主窗口
您必须创建该插槽
你不需要把那个位置公开,而是让它成为私人的
这个功能不是垃圾
您必须创建该插槽
你不需要把那个位置公开,而是让它成为私人的
这个功能不是垃圾
把吃角子老虎机设为私人的做法很有道理。好吧,也许我把函数称为垃圾太苛刻了。但这真的没有必要;由于setEnabled()
和setDisabled
都存在,如果两者都不带任何参数,那就更好了。在您的情况下可能会更好,但我不认为总体上会更好。如果将状态作为bool变量:“if(foo)w->setEnabled();else w->setDisabled();”同样,一种常见的模式是将可检查按钮的切换(bool)连接到setEnabled/setDisabled。好吧,也许我把函数称为垃圾太苛刻了。但这真的没有必要;由于setEnabled()
和setDisabled
都存在,如果两者都不带任何参数,那就更好了。在您的情况下可能会更好,但我不认为总体上会更好。如果将状态作为bool变量:“if(foo)w->setEnabled();else w->setDisabled();”同样,一种常见模式是将可检查按钮的切换(bool)连接到setEnabled/setDisabled。请注意,不能在connects中给出实际参数值,如示例代码中的true
。您只能提供参数类型,如bool
。请注意,您不能在connects中提供实际参数值,如示例代码中的true
。您只能提供参数类型,如bool
。