c++ - 无法在图形场景上操作 QWidget
问题描述
我正在尝试在 QGraphicsscene 上使用 QWidget 并使小部件中的工具按钮起作用。但他们不会对点击做出反应。我也有样式表可以在悬停工具按钮时更改颜色,但鼠标悬停在小部件上不起作用。我希望能够使用小部件上的工具按钮以及在图形场景上跟踪鼠标事件。
QWidget *zoomWidget= new QWidget();
QToolButton *zoomInButton=new QToolButton();
zoomInButton->setStyleSheet("QToolButton:hover{ background:green; border-radius:7px; border:1px solid green;}QToolButton:!hover{ background:yellow; border-radius:7px; border:1px solid yellow;}");
zoomWidget->setStyleSheet("background-color: rgba(0,0,0,0)");
zoomWidget->setLayout(new QHBoxLayout(zoomWidget));
zoomWidget->layout()->addWidget(zoomInButton);
zoomWidget->layout()->addWidget(zoomOutButton);
zoomWidget->layout()->setSizeConstraint(QLayout::SetFixedSize);
QGraphicsProxyWidget *proxyWidget= addWidget(zoomWidget);
proxyWidget->setPos(800,20);
proxyWidget->setZValue(1000);
connect(zoomInButton,SIGNAL(clicked()),this,SLOT(zoomIn()));
void GraphicsScene::zoomIn()
{
QMessageBox::information(0,"hello","zoomIn clicked");
}
上面的代码写在 QGraphicsScene Inherited 类中。
解决方案
推荐阅读
- java - 多模块项目中的 Maven 并行构建
- spring-cloud - Spring Cloud Ribbon 负载均衡序列
- oozie - 如何在 oozie Web 控制台中按工作流 ID 和名称进行过滤?
- oauth - Dynamics CRM Oauth 令牌快速过期
- python - Pycharm检测python橡胶而不是python测试模板
- swift - iPhone7(12.4.0) 中字符 0 周围的值无效
- aws-lambda - Alexa 技能不执行意图
- vue.js - 将日期对象作为道具传递的默认值是什么?
- wordpress - 无法在 IIS 服务器上的 WordPress 媒体中上传大于 20MB 的文件
- python - 如何获取网页的所有链接,无论是使用python直接还是间接链接到网页?