除非单击对话框中的另一个按钮,否则QComboBox不会显示当前选定的项目

问题描述

我有这个QDialog:

enter image description here

除非单击对话框中的任何其他按钮,否则QComboBox不会显示当前选定的项目。

要注意的重要一点是,这仅在部署中发生。当我在Qt中运行项目时,它就可以正常工作。 是否有DLL干扰QComboBox?我不知道在哪里找。

部署目录:

enter image description here

  • SDL2.dll,并且在平台中具有qwindows.dll,其余部分为标准

如果有帮助,这就是我填写QComboBox的方式:

  void settings_box::fill_dropdown()
  {
    QStringList list;
    if(!avail_adapters.empty())
    {
        for(const auto &adapter : avail_adapters)
        {
            list << QString::fromStdString(adapter.first);
        }
    }
    ui->dropdown->addItems(list);
  }

我用QtCreator(适用于UWP 64位的Qt 5.15.0(MSVC 2015))中的设计器设计了QDialog及其小部件。

您自己遇到过这个吗?您可以为我提供可能的解决方案吗?

谢谢!

编辑: 我对找到的解决方法感到非常满意,但是如果您真的要解决此问题,我在这里为您服务。

解决方法

我发现这种变通方法可以与使用应用程序时出现的情况相同。

此代码在出现对话框时将焦点放在选中的单选按钮上。

void settings_box::showEvent(QShowEvent *event){
    //makes the event happen
    event->accept();

    //which radio button is checked
    if(ui->maximizedRadio->isChecked()){
        //updates the dropdown showing its selected item
        emit ui->maximizedRadio->setFocus();
    } else{
        //updates the dropdown showing its selected item
        emit ui->fullscreenRadio->setFocus();
    }
}

注意,这只是一种解决方法,我仍然不知道为什么这个问题根本存在。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...