Кто-то уже emit mysignal(id,value)
? Если это так, используйте для этого указанный метод c. Я собираюсь повторно использовать ваше перегруженное имя, чтобы показать:
void Program::paintButton(int id, int value)
{
setValue(id, value);
paintButton(id);
}
void Program::paintButton(int id)
{
switch(id)
{
case 1 :
ui->btn1->setText("1");
ui->btn2->setText("");
ui->btn3->setText("");
break;
case 2 :
ui->btn2->setText("2");
ui->btn1->setText("");
ui->btn3->setText("");
break;
case 3 :
ui->btn3->setText("3");
ui->btn1->setText("");
ui->btn2->setText("");
break;
}
}
Вы не можете ждать сигнала в середине вашего кода. Если вам нужно ответить на второй из двух разных сигналов, вы можете присоединить каждый сигнал к своему собственному слоту:
void Program::slotId(int id)
{
if (m_dopaint)
{
m_dopaint = false;
paintButton(id, m_value)
}
else
{
m_id = id;
m_dopaint = true;
}
}
void Program::slotValue(int value)
{
if (m_dopaint)
{
m_dopaint = false;
paintButton(m_id, value)
}
else
{
m_value = value;
m_dopaint = true;
}
}