我想包括在我的QComboBox条目的“删除”图标,但我有麻烦抓鼠标的新闻发布会。 我试图抓住它的组合框,我已经试过reimplemting的QIcon类赶上mousepress那里。 没有骰子。 有人知道怎么做这个吗?
-D
我想包括在我的QComboBox条目的“删除”图标,但我有麻烦抓鼠标的新闻发布会。 我试图抓住它的组合框,我已经试过reimplemting的QIcon类赶上mousepress那里。 没有骰子。 有人知道怎么做这个吗?
-D
我写的代码有点像这样,在这里我希望把树视图组合框里面,我需要被点击树上的复选框时采取行动。 我落得这样做是在组合框上安装一个事件过滤器拦截鼠标点击,找出其中的鼠标点击发生了什么,然后采取行动。 也许你可以做这样的事情与你的图标。 下面是代码:
bool TreeComboBox::eventFilter(QObject* object, QEvent* event)
{
if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease)
{
QMouseEvent* m = static_cast<QMouseEvent*>(event);
QModelIndex index = view()->indexAt(m->pos());
QRect vrect = view()->visualRect(index);
if(event->type() == QEvent::MouseButtonPress &&
(model()->flags(index) & Qt::ItemIsUserCheckable) &&
vrect.contains(m->pos()))
{
// Your action here
ToggleItem(index);
UpdateSelectionString();
}
if (view()->rect().contains(m->pos()))
skipNextHide = true;
}
return QComboBox::eventFilter(object, event);
}
也许你可以重新实现QComboBox::mousePressEvent(QMouseEvent *e)
并使用ex()
连同QComboBox::iconSize()
找到,如果发生在图标上的事件。
这将导致关断,如果一个Qt风格决定切换标签和图标位置的组合框。 不知道这是可能的吗?