设置不规则窗体
Posted Respect@
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置不规则窗体相关的知识,希望对你有一定的参考价值。
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
protected:
void paintEvent(QPaintEvent *event) override;//重画
void mousePressEvent(QMouseEvent *event) override;//鼠标按下事件
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QPixmap>
#include <QBitmap>
#include <QPainter>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QPixmap pixmap;
pixmap.load(":/flower.png");
ui->label->resize(pixmap.size());
resize(pixmap.size());
//设置遮罩
setMask(pixmap.mask());
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)//重绘
{
QPainter painter(this);
painter.drawPixmap(0,0,QPixmap(":/flower.png"));
}
void Widget::mousePressEvent(QMouseEvent *event)
{
close();
}
main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
以上是关于设置不规则窗体的主要内容,如果未能解决你的问题,请参考以下文章