如何捕捉QComboBox弹出关闭事件

pau*_*pau 3 qt popup qcombobox

正在使用QComboBox派生类来显示我的项目。我的组合框是只读的。但是如何在组合框的弹出视图关闭时捕获事件?
例如,当用户在我的组合框中的某处单击鼠标按钮时?
非常感谢您提前。

Seb*_*nge 5

你要这个活动有什么用?如果 QComboBox 在没有选择的情况下关闭,则没有任何变化。给出的信号只有在做出选择后才会被激活。

如果您坚持阅读“关闭事件”,您可以子类化focusOutEvent(QFocusEvent*)或使用事件处理程序来处理焦点事件并发出自定义信号。最终,您希望hadEditFocus()之前设置一个布尔标志,以便您可以查看是否会打开下拉列表。

编辑:最终,子类化和重新实现会更容易showPopup()hidePopup()如:

void MyClass::showPopup() 
{
  QComboBox::showPopup();
  emit signalPopupShown();
}

void MyClass::hidePopup()
{
  QComboBox::hidePopup();
  emit signalPopupHidden();
}
Run Code Online (Sandbox Code Playgroud)

但我不确定是否在焦点松散时调用 hidePopup()。