问题描述
我有这个QDialog:
除非单击对话框中的任何其他按钮,否则QComboBox不会显示当前选定的项目。
要注意的重要一点是,这仅在部署中发生。当我在Qt中运行项目时,它就可以正常工作。 是否有DLL干扰QComboBox?我不知道在哪里找。
部署目录:
- 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();
}
}
注意,这只是一种解决方法,我仍然不知道为什么这个问题根本存在。