Linux Qt的弹出页面(popup)上,QComboBox能显示,但不会显示先拉列表而且只要点击QComboBox下拉列表会导致popup退出
时间: 2024-04-13 12:30:35 浏览: 231
QComboBox多选下拉框,可点击删除
很抱歉,我之前的回答可能不准确。对于您的问题,可能是由于弹出页面(popup)的焦点问题导致QComboBox下拉列表无法显示,并且点击下拉列表会导致popup退出。
为了解决这个问题,您可以尝试在弹出页面的构造函数中设置 `setFocusProxy`,将焦点代理设置为QComboBox控件。这样可以确保弹出页面的焦点与QComboBox关联。
```cpp
MyPopup::MyPopup(QWidget *parent) : QWidget(parent)
{
QComboBox *comboBox = new QComboBox(this);
// 添加下拉列表项
comboBox->addItem("Item 1");
comboBox->addItem("Item 2");
comboBox->addItem("Item 3");
// 将焦点代理设置为QComboBox控件
setFocusProxy(comboBox);
}
```
此外,还需要确保弹出页面的焦点策略设置为 `Qt::StrongFocus`,以便正确处理焦点。在弹出页面的构造函数中添加以下代码:
```cpp
setFocusPolicy(Qt::StrongFocus);
```
这样,当点击QComboBox下拉列表时,焦点将保持在弹出页面上,而不会导致popup退出。
希望这能解决您的问题。如果仍然有疑问,请随时提问。谢谢!
阅读全文