Qt的5 QComboBox setCurrentIndex
问题描述:
我使用:Qt的5 QComboBox setCurrentIndex
UI-> Combobox-> setCurrentIndex(1);
但这指令不调用函数
空隙on_comboBox_currentIndexChanged(常量的QString & ARG1);
为什么会这样?
void ConsigneMouvement::show(int AxeType)
{
axeType = AxeType;
switch(axeType)
{
case 1:
ui->comboBox->setCurrentIndex(0);
ui->comboBox->setEnabled(true);
break;
case 2 :
ui->comboBox->setCurrentIndex(1);
ui->comboBox->setEnabled(false);
break;
case 3 :
ui->comboBox->setCurrentIndex(0);
ui->comboBox->setEnabled(true);
break;
case 4 :
ui->comboBox->setCurrentIndex(0);
ui->comboBox->setEnabled(true);
break;
}
this->exec();
}
和功能
void ConsigneMouvement::on_comboBox_currentIndexChanged(const QString &arg1)
{
if(arg1 == "Absolu")
ui->label_distance->setText(tr("Position"));
else
ui->label_distance->setText(tr("Distance"));
}
答
很有可能是因为你在一个地方,组合框在其他写道组合框插槽不会自动连接,所以尝试:
void on_Combobox_currentIndexChanged(const QString &arg1);
//你需要在build之前运行qmake
LE:我建议,以避免自动连接功能,并自己编写连接语句(你必须要小心,以避免命名像on_WIDGETNAME_SIGNALNAME插槽,因为你可能最终得到一个名为两次槽)
答
setCurrentIndex()如果没有真正改变,它不会发射currentIndexChanged()信号。这意味着在你的例子中,以前的索引已经是1.
你能提供一个[简单,完整的示例代码](http://sscce.org),它显示了这个问题? – 2013-05-07 07:50:10
您的索引是否真的发生了变化?如果以前的索引也是1,则信号不会发出。 – Amartel 2013-05-07 07:53:54
您是否刚刚将示例代码作为答案发布?这是不可接受的,通过'编辑'按钮添加您的问题,并删除'答案'。 – cmannett85 2013-05-07 08:06:19