Qt 使用if语句

Qt 使用if语句,qt,signals,signals-slots,Qt,Signals,Signals Slots,我想在按下按钮1时显示名为image1的图像,在按下按钮2时显示名为image2的图像。为了做到这一点,我想使用'if'语句。我编写了以下代码: if(ui->button1->clicked()) image.load(":/CondScrnIns.png"); else if(ui->button2->clicked()) image.load(":/CondScrnInsCentric.png"); 但在执行这些语句时,我得到了以下错误: void QAbstra

我想在按下按钮1时显示名为image1的图像,在按下按钮2时显示名为image2的图像。为了做到这一点,我想使用'if'语句。我编写了以下代码:

if(ui->button1->clicked())
image.load(":/CondScrnIns.png");
else if(ui->button2->clicked())
image.load(":/CondScrnInsCentric.png");
但在执行这些语句时,我得到了以下错误:

void QAbstractButton::clicked(bool) is protected

除了clicked(),我应该使用什么函数?

您需要在相应的事件处理程序中编写
image.load()
语句。在这样的if语句中,您不能检查
按钮->单击()


查看此页面:

您必须为每个按钮的单击信号和do image.load创建插槽

connect(button1, SIGNAL( clicked() ), this, SLOT(button1Clicked()));
connect(button2, SIGNAL( clicked() ), this, SLOT(button2Clicked()));

然后,在button1Clicked()和button2Clicked()插槽中,您可以输入代码来加载图像或调整对话框的大小。

Ok,但如果我想在if语句中以不同的方式使用button->clicked(),如形状更改对话框,即。,如果我单击一个按钮,对话框的形状应该改变,如果我单击另一个按钮,它应该恢复到原来的大小,那么我应该如何使用它?如果您希望在单击按钮时发生任何事情,所有相关的代码都必须进入事件处理程序函数。clicked()函数不返回任何值-在if语句中使用它没有意义。您必须使用信号和插槽,请参阅本文档: