【问题标题】:How can I initialize a default value of QComboBox without to click it?如何在不单击的情况下初始化 QComboBox 的默认值?
【发布时间】:2012-10-31 18:51:27
【问题描述】:

如何在不点击的情况下初始化 QComboBox 的默认值?我试过了

ui->combBox->setCurrentIndex(1);

但是当我第一次读取该值时,不幸的是,我得到了一个 -1,并且只有在点击 QComboBox 后,它的值才变为 1

【问题讨论】:

  • 当您尝试将索引设置为 1 时,组合框是否至少有 2 个项目?

标签: c++ qt


【解决方案1】:

您确定 QComboBox 中至少有两个值吗?从 0 开始计数,而不是 1。如果要选择第一个值,则需要:

ui->combBox->setCurrentIndex(0);

如果这不是问题,并且组合框中确实有两个值,那么请确保首先设置了 ui。这个调用需要先执行:

ui->setupUi(this);

它实际上是用 .ui 文件中指定的值填充组合框。

【讨论】:

  • 是的,我确定。值:true(1) 和 false(0) 在 MainWindow.ui 文件中定义。然后在构造函数中我尝试设置值 ui->combBox->setCurrentIndex(1);
  • 我可以将 MainWindow 中的值设置为 true(1) 或 false(0) 它可以正常工作,但是如果在单击之前读取 QComboBox 的值,我会得到一个 - 1 :((
  • 您是否尝试在设置 ui 之前选择索引 1,也许?也就是在构造函数中ui->setupUi(this);调用之前?
  • 但我刚刚看过。这不是问题:起初我调用 ui->setupUi(this); 然后 ui->combBox->setCurrentIndex(0); :((正确。
  • 确保以后不要再拨打ui->setupUi(this)。当您创建 .ui 和 .cpp 文件时,Qt 会自动编写该调用。您也可以在您的问题中发布构造函数的代码,以便我们验证这一点。
【解决方案2】:

我解决了这个问题。 ui->combBox->setCurrentIndex(1); 之前在构造函数中 connect(ui->combBox,SIGNAL(currentIndexChanged(int)).... @Nikos C. 非常感谢您的提示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2014-12-29
    相关资源
    最近更新 更多