ここには 2 つの異なるレイアウトと 1 つの QToolButton があります。私の目標は、クリックしたときにそのボタンを 2 つのレイアウト間で転送することです。私はこのコードがうまくいくと思った、
スニペット:
void DominionLinux::on_toolButton_clicked(string state)
{
if (state=="Disabled"){
ui->verticalLayout_Enabled->addWidget(ui->toolButton);
state = "Enabled";
}
else if (state=="Enabled"){
ui->verticalLayout_Disabled->addWidget(ui->toolButton);
state = "Disabled";
}
}
デフォルトでは、状態 == "無効" です。QTCreator で UI をテストすると、最初にクリックしたときに動作します。ボタンは 1 つのテンプレートから消え、別のテンプレートに表示されます。他のテンプレート上で 2 回目にクリックすると、クリックしません。コンパイルすると、次の警告が表示されます: *QMetaObject::connectSlotsByName: on_toolButton_clicked(string) の一致する信号がありません*
スロットが機能しなくなる理由はありますか?