QLabel不能满足我的需求,需要提升QLabel为自己封装的类
在UI中,拉一个QLabel出来,鼠标右键点击QLabel,选择【提升为】,然后填写自己的类。
需要注意的是,提升后QLabel需要show一下,不然显示不出来
#ifndef MYVIDEO_H #define MYVIDEO_H #include <QLabel> #include <QWidget> #include <QPaintEvent> #include <QMouseEvent> #include <QMessageBox> #include <QPainter> #include <QPaintEvent> #include <QDebug> class MyVideo : public QLabel { Q_OBJECT public: MyVideo(QWidget*parent=nullptr); ~MyVideo(); void paintEvent(QPaintEvent* e); void mousePressEvent(QMouseEvent* e); }; #endif // MYVIDEO_H
#include "myvideo.h" MyVideo::MyVideo(QWidget* parent):QLabel(parent) { // setStyleSheet("background-color:red"); // 需要show一下,不然显示不出来 show(); } MyVideo::~MyVideo() { } void MyVideo::paintEvent(QPaintEvent *e) { QPainter p(this); QPen pen; pen.setColor(Qt::red); pen.setWidth(10); p.setPen(pen); p.drawLine(10,10,100,100); } void MyVideo::mousePressEvent(QMouseEvent *e) { QMessageBox::information(nullptr, "123", "123"); // qDebug() << "123"; }
标签:Qt,show,void,MyVideo,pen,提升,include,QLabel From: https://www.cnblogs.com/shiyixirui/p/18459864