首页 > 解决方案 > 无法在图形场景上操作 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 类中。

标签: c++qtqgraphicsscene

解决方案


推荐阅读