-
概述
方法一:
采用遮罩方式,用图片把控件遮挡
方法二:
采用图片透明度的方式,绘制图片时把透明度调到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 } void Widget::paintEvent(QPaintEvent *) { #if method QPalette palette
Qt实现异形窗体
最新推荐文章于 2023-02-20 19:48:17 发布

最低0.47元/天 解锁文章
1466

被折叠的 条评论
为什么被折叠?



