Qt之QGraphicsScene、QGraphicsView 实现窗口透明情况下的点击事件

44 篇文章 209 订阅 ¥29.90 ¥99.00
在Qt中,仅设置窗口透明无法捕获鼠标事件。通过结合使用QGraphicsScene和QGraphicsView,可以实现在透明窗口上处理鼠标点击事件。具体步骤包括窗口透明化、自定义QGraphicsView子类以重写鼠标事件,以及创建场景和视图。源码下载链接提供在CSDN。
摘要由CSDN通过智能技术生成

        在用Qt做窗口透明处理时只设置窗口透明属性是接收不到鼠标事件的,想要在窗口透明的情况下去接收鼠标消息还需要依靠QGraphicsScene与QGraphicsView。具体的做法是:

        一、先把窗口透明化:

    //1. 设置窗口大小、样式
    this->setGeometry(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);       //设置窗口大小和屏幕大小一样
    this->setWindowFlags(Qt::FramelessWindowHint);              //设置无标题无边框窗口
    this->setAttribute(Qt::WA_TranslucentBackground, true);     //设置透明窗口

        二、 继承QGraphicsView重写一个自己的类,因为要重写鼠标事件

#ifndef MYGRAPHICSVIEW_H
#define MYGRAPHICSVIEW_H

#include <QGraphicsView>

class MyGraphicsView : public QGraphicsView
{
    Q_OBJECT
public:
    MyGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);
    ~MyGraphicsView(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ilson_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值