-
概述
方法一:
采用遮罩方式,用图片把控件遮挡
方法二:
采用图片透明度的方式,绘制图片时把透明度调到100%
第一种方法绘制的图片边沿会有明显的虚线框,第二种方法绘制图片比较平滑 -
实例代码
.h文件:#ifndef WIDGET_H #define WIDGET_H #include <QWidget> class QPixmap; class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); void paintEvent(QPaintEvent *); private: QPixmap m_pixmap; }; #endif // WIDGET_H
.cpp文件:
#include "widget.h" #include <QPixmap> #include <QBitmap> #include <QPainter> #define method 1 //1: 第一种方法 0: 第二种方法 Widget::Widget(QWidget *parent) : QWidget(parent) { setWindowFlags(Qt::FramelessWindowHint); m_pixmap.load(":/images/linux.png"); resize(m_pixmap.size()); #if method setMask(m_pixmap.mask()); #else setAttribute(Qt::WA_TranslucentBackground); #endif }
Qt实现异形窗体
最新推荐文章于 2023-02-20 19:48:17 发布