Qt5开发及实例学习之不规则窗体:没看懂
时间: 2018-09-03来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>>
1、新建QT GUI工程,项目名称“ShapeWidget”, 基类QWidget, 类名ShapeWidget,取消“创建界面”
2、ShapeWidget.h #ifndef SHAPEWIDGET_H #define SHAPEWIDGET_H #include <QWidget> class ShapeWidget : public QWidget { Q_OBJECT public: ShapeWidget(QWidget *parent = 0); ~ShapeWidget(); protected: void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); void paintEvent(QPaintEvent *); private: QPoint dragPosition; }; #endif // SHAPEWIDGET_H
3、 #include "shapewidget.h" #include <QMouseEvent> #include <QPainter> #include <QPixmap> #include <QBitmap> ShapeWidget::ShapeWidget(QWidget *parent) : QWidget(parent) { QPixmap pix; pix.load("F:\\MyCode\\test1.bmp", 0, Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither); resize(pix.size()); setMask(QBitmap(pix.mask())); } ShapeWidget::~ShapeWidget() { } void ShapeWidget::mousePressEvent(QMouseEvent *event) { if(event->button()==Qt::LeftButton) { dragPosition =event->globalPos()-frameGeometry().topLeft(); event->accept(); } if(event->button()==Qt::RightButton) { close(); } } void ShapeWidget::mouseMoveEvent(QMouseEvent *event) { if(event->buttons()&Qt::LeftButton) { move(event->globalPos()-dragPosition); event->accept(); } } void ShapeWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.drawPixmap(0,0,QPixmap("F:\\MyCode\\test1.bmp")); }

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行