connect(proxy, &QGraphicsProxyWidget::window, [=]() { qDebug() << "Button Clicked"; }); 4个重载中没有一个可以转换所有参数
时间: 2024-03-03 14:46:47 浏览: 23
非常抱歉,我在之前的回答中犯了一个错误。正确的方法是将 `QGraphicsProxyWidget::window()` 信号连接到自定义的槽函数中,然后在槽函数中进行处理。
示例代码如下:
```
// 创建一个 QWidget 类型的对象
QWidget *widgettmp = new QWidget;
// 在 QWidget 上添加一个按钮
QPushButton *button = new QPushButton("Click Me", widgettmp);
// 创建一个 QGraphicsProxyWidget 类型的对象
QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget;
// 设置 QGraphicsProxyWidget 的 widget 为 QWidget 对象
proxy->setWidget(widgettmp);
// 设置 QGraphicsProxyWidget 的可交互属性
proxy->setFlag(QGraphicsItem::ItemIsSelectable, true);
proxy->setFlag(QGraphicsItem::ItemIsFocusable, true);
// 连接 QGraphicsProxyWidget 的 window 信号和自定义的槽函数
connect(proxy, &QGraphicsProxyWidget::window, this, &MyClass::onProxyWindow);
// 自定义的槽函数
void MyClass::onProxyWindow(QEvent *event) {
if (event->type() == QEvent::MouseButtonPress) {
qDebug() << "Button Clicked";
}
}
```
通过以上代码,可以将按钮添加到 `QWidget` 上,并将 `QWidget` 包装成 `QGraphicsProxyWidget` 对象。然后连接 `QGraphicsProxyWidget::window()` 信号和自定义的槽函数 `onProxyWindow`,当用户点击 `QWidget` 中的按钮时,就会输出 "Button Clicked" 的信息。在自定义的槽函数中,我们可以通过 `QEvent` 判断事件类型,从而实现对不同事件的处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)