博客
关于我
QT自定义QGraphicsRectItem
阅读量:511 次
发布时间:2019-03-07

本文共 1286 字,大约阅读时间需要 4 分钟。

PS:添加自定义类时需要继承QObject,来获得信号与槽功能。

//myrectitem.h#ifndef MYRECTITEM_H#define MYRECTITEM_H#include 
#include
#include
#include
#include
#include
//自定义QGraphicsRectItem,使其1.被单击时,状态栏显示标签名;2.右键显示删除菜单class MyRectItem : public QObject, public QGraphicsRectItem{ Q_OBJECTpublic: explicit MyRectItem(const QRectF & rect, QGraphicsItem *parent = nullptr);protected: void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); void mousePressEvent(QGraphicsSceneMouseEvent *event);signals: void sendDelete(MyRectItem*); void show(MyRectItem*);public slots: void slotRemoveItem();};#endif // MYRECTITEM_H
//myrectitem.cpp#include "myrectitem.h"MyRectItem::MyRectItem(const QRectF & rect, QGraphicsItem *parent) : QGraphicsRectItem(rect, parent){   }void MyRectItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event){       QMenu menu;    QAction *removeAction = menu.addAction("删除");    connect(removeAction,SIGNAL(triggered()),this,SLOT(slotRemoveItem()));    menu.exec(event->screenPos());}void MyRectItem::slotRemoveItem(){       emit sendDelete(this);}void MyRectItem::mousePressEvent(QGraphicsSceneMouseEvent *event){       emit show(this);}

PS:父组件.cpp文件需要在创建MyRectItem时connect两个信号与槽,在删除时disconnect。

转载地址:http://fvknz.baihongyu.com/

你可能感兴趣的文章
Nginx启动SSL功能,并进行功能优化,你看这个就足够了
查看>>
nginx启动脚本
查看>>
Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例
查看>>
Nginx在Windows下载安装启动与配置前后端请求代理
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx如何实现图片防盗链
查看>>
Nginx学习总结(13)——Nginx 重要知识点回顾
查看>>
Nginx学习总结(14)——Nginx配置参数详细说明与整理
查看>>
nginx学习笔记002---Nginx代理配置_案例1_实现了对前端代码的方向代理_并且配置了后端api接口的访问地址
查看>>
Nginx安装与常见命令
查看>>
Nginx安装及配置详解
查看>>
nginx安装配置
查看>>
Nginx实战经验分享:从小白到专家的成长历程!
查看>>
Nginx实现反向代理负载均衡
查看>>
nginx实现负载均衡
查看>>
nginx常用命令及简单配置
查看>>
nginx开机启动脚本
查看>>
nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
查看>>
nginx总结及使用Docker创建nginx教程
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
查看>>