去掉窗口边框,设置窗口透明
{
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
}
重写paintEvent方法
void QtTest::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); // 反锯齿;
painter.setBrush(QBrush(Qt::red));
painter.setPen(Qt::transparent);
QRect rect = this->rect();
rect.setWidth(rect.width() - 1);
rect.setHeight(rect.height() - 1);
painter.drawRoundedRect(rect, 15, 15);
//也可用QPainterPath 绘制代替 painter.drawRoundedRect(rect, 15, 15);
//{
// QPainterPath painterPath;
// painterPath.addRoundedRect(rect, 15, 15);
// painter.drawPath(painterPath);
//}
QWidget::paintEvent(event);
}
void QtTest::paintEvent(QPaintEvent* event)
{
//绘制背景图
QPixmap pixmap(":/1.png");
QPainter painter(this);
painter.drawPixmap(0,0,pixmap.scaled(this->size(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation)); // 绘制不规则背景
}
暂无评论