gpt4 book ai didi

c++ - 组合框内的 QIcon

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:49 24 4
gpt4 key购买 nike

我想在我的 QComboBox 中的条目上包含一个“删除”图标,但我无法捕获鼠标按下事件。我试图在组合框中捕获它,并且尝试重新实现 QIcon 类以在那里捕获鼠标按下。没有骰子。有人知道怎么做吗?

-D

最佳答案

我编写的代码有点像这样,我想在组合框中放置一个 TreeView ,并且我需要在单击树上的复选框时执行操作。我最终做的是在组合框上安装一个事件过滤器来拦截鼠标点击,找出鼠标点击发生的位置,然后采取行动。也许你可以用你的图标做同样的事情。这是代码:

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);
}

关于c++ - 组合框内的 QIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com