我正在使用QComboBox
派生类来显示我的项目。我的组合框是只读的。但是当组合框的弹出视图关闭时,我怎样才能捕捉到事件呢?
例如,当用户在我的组合框中某处单击鼠标按钮时?
非常感谢您提前。
问问题
7817 次
1 回答
5
你要这个活动干什么?如果 QComboBox 在没有选择的情况下关闭,则没有任何变化。给出的信号只有在做出选择时才会被激活。
如果您坚持阅读“关闭事件”,您可以继承focusOutEvent(QFocusEvent*)
或使用事件处理程序来处理焦点事件并发出自定义信号。最终,您希望hadEditFocus()
之前设置一个布尔标志,以便您可以查看下拉菜单是否会打开。
编辑:最终,子类化和重新实现会更容易,showPopup()
并且hidePopup()
:
void MyClass::showPopup()
{
QComboBox::showPopup();
emit signalPopupShown();
}
void MyClass::hidePopup()
{
QComboBox::hidePopup();
emit signalPopupHidden();
}
但我不确定 hidePopup() 是否在焦点松散时被调用。
于 2013-10-07T08:22:42.317 回答