首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Qt/C++中更改QWidgetAction样式

在Qt/C++中更改QWidgetAction样式
EN

Stack Overflow用户
提问于 2014-09-11 17:47:18
回答 2查看 1.1K关注 0票数 0

然后我将QWidgetAction添加到菜单中:

代码语言:javascript
复制
QMenu menu = new QMenu(this);
QCustomWidget* widget = new QCustomWdiget(this);  // inherits from QWidget
QCustomAction* action = new QCustomAction(this);  // Inherits from QWidgetAction
action->setDefaultWidget(widget);
menu->addAction(action);

我只是得到了一个不继承普通菜单项行为的小部件。我尝试设置我的自定义小部件的sytlesheet。有没有办法继承标准操作项的样式和/或行为?

EN

回答 2

Stack Overflow用户

发布于 2014-09-11 20:45:02

这是一个让hover工作的解决方案:

代码语言:javascript
复制
void QCustomWidget::enterEvent(QEvent* e)
{
  emit entered();
}

void QCustomAction::onWidgetEntered()
{
    if (QMenu* menu = qobject_cast<QMenu*>(sender()->parent()))
    {
        menu->setActiveAction(this);
    }
}

// when you created both:

connect(customWidget, SIGNAL(entered()), customAction, SLOT(onWidgetEntered()));
票数 1
EN

Stack Overflow用户

发布于 2016-05-27 15:48:04

@Ezee我试过你的方法,但是没有效果。我使用enterEvent和leaveEvent来实现悬停效果;当鼠标移到动作上时,代码会运行到enterEvent中,但是样式表不起作用。

但是我发现了另一种实现我想要的图标的方法,当鼠标悬停在动作上时,我可以使用QIcon::addIcon(QIcon::feature.What,XXXXX).In,这样我就可以很容易地更改悬停图标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25784217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档