首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Qt 5 QComboBox setCurrentIndex

Qt 5 QComboBox setCurrentIndex
EN

Stack Overflow用户
提问于 2013-05-07 07:40:42
回答 2查看 4.3K关注 0票数 0

我用:

ui->Combobox->setCurrentIndex(1);

但是这个指令没有调用这个函数

void on_comboBox_currentIndexChanged(const QString &arg1);

为什么会有这种行为?

代码语言:javascript
运行
复制
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();  
}

和功能

代码语言:javascript
运行
复制
void ConsigneMouvement::on_comboBox_currentIndexChanged(const QString &arg1) 
{
    if(arg1 == "Absolu")
        ui->label_distance->setText(tr("Position"));
    else
        ui->label_distance->setText(tr("Distance")); 
}
EN

回答 2

Stack Overflow用户

发布于 2014-08-20 14:23:20

如果没有真正更改setCurrentIndex(),则它不会发出currentIndexChanged()信号。这意味着在您的示例中,前面的索引已经是1。

票数 1
EN

Stack Overflow用户

发布于 2013-05-07 08:02:52

很可能插槽不是自动连接的,因为您在一个地方编写了comboBox,在另一个地方编写了Combobox,所以尝试:

代码语言:javascript
运行
复制
void on_Combobox_currentIndexChanged(const QString &arg1);

//您需要在构建之前运行qmake

LE:我建议避免自动连接功能,自己编写connect语句(您需要小心避免命名像on_WIDGETNAME_SIGNALNAME这样的插槽,因为可能会有一个名为“两次”的插槽)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16413739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档