我用:
ui->Combobox->setCurrentIndex(1);
但是这个指令没有调用这个函数
void on_comboBox_currentIndexChanged(const 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"));
}
发布于 2014-08-20 14:23:20
如果没有真正更改setCurrentIndex(),则它不会发出currentIndexChanged()信号。这意味着在您的示例中,前面的索引已经是1。
发布于 2013-05-07 08:02:52
很可能插槽不是自动连接的,因为您在一个地方编写了comboBox,在另一个地方编写了Combobox,所以尝试:
void on_Combobox_currentIndexChanged(const QString &arg1);
//您需要在构建之前运行qmake
LE:我建议避免自动连接功能,自己编写connect语句(您需要小心避免命名像on_WIDGETNAME_SIGNALNAME这样的插槽,因为可能会有一个名为“两次”的插槽)
https://stackoverflow.com/questions/16413739
复制相似问题