除非单击对话框中的另一个按钮,否则 QComboBox 不会显示当前选定的项目
QComboBox doesn't display the currently selected item unless another button in the dialog is clicked
我有这个 QDialog:
除非单击对话框中的任何其他按钮,否则 QComboBox 不会显示当前选定的项目。
需要注意的重要一点是,这只发生在部署中。当我 运行 Qt 中的项目时,它工作得很好。
是否有干扰 QComboBox 的 DLL?我不知道去哪里找。
部署目录:
- 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 中的设计器设计了 QDialog 及其小部件(Qt 5.15.0 for UWP 64bit (MSVC 2015))
你自己遇到过这种情况吗?有什么可行的解决方案可以提供给我吗?
提前致谢!
编辑:
我对找到的解决方法感到非常满意,但如果您真的想解决这个问题,我会在这里为您服务。
我发现这个变通办法与您使用该应用程序时需要发生的事情相同。
当对话框出现时,此代码将焦点放在选中的单选按钮上。
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();
}
}
注意这只是一种解决方法,我仍然完全不知道为什么会出现这个问题。
我有这个 QDialog:
除非单击对话框中的任何其他按钮,否则 QComboBox 不会显示当前选定的项目。
需要注意的重要一点是,这只发生在部署中。当我 运行 Qt 中的项目时,它工作得很好。 是否有干扰 QComboBox 的 DLL?我不知道去哪里找。
部署目录:
- 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 中的设计器设计了 QDialog 及其小部件(Qt 5.15.0 for UWP 64bit (MSVC 2015))
你自己遇到过这种情况吗?有什么可行的解决方案可以提供给我吗?
提前致谢!
编辑: 我对找到的解决方法感到非常满意,但如果您真的想解决这个问题,我会在这里为您服务。
我发现这个变通办法与您使用该应用程序时需要发生的事情相同。
当对话框出现时,此代码将焦点放在选中的单选按钮上。
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();
}
}
注意这只是一种解决方法,我仍然完全不知道为什么会出现这个问题。