用Qt显示半透明/不规则形状的窗户
发布时间:2021-01-20 08:08:31 所属栏目:Windows 来源:网络整理
导读:可以用Qt显示半透明和/或不规则形状的窗户吗? (我假设它最终取决于底层GUI系统的功能,但让我们假设至少Windows XP / Mac OS X) 如果是这样,怎么做到这一点? 是的,这是可能的.关键是QWidget的Qt :: WA_TranslucentBackground属性 这是一个简单的类,绘制一个
|
可以用Qt显示半透明和/或不规则形状的窗户吗? (我假设它最终取决于底层GUI系统的功能,但让我们假设至少Windows XP / Mac OS X) 如果是这样,怎么做到这一点? 是的,这是可能的.关键是QWidget的Qt :: WA_TranslucentBackground属性这是一个简单的类,绘制一个圆形半透明窗口,红色背景50%alpha. TranslucentRoundWindow.h: #include <QWidget>
class TranslucentRoundWindow : public QWidget
{
public:
TranslucentRoundWindow(QWidget *parent = 0);
virtual QSize sizeHint() const;
protected:
virtual void paintEvent(QPaintEvent *paintEvent);
};
TranslucentRoundWindow.cpp: #include <QtGui>
#include "TranslucentRoundWindow.h"
TranslucentRoundWindow::TranslucentRoundWindow(QWidget *parent) : QWidget(parent,Qt::FramelessWindowHint)
{
setAttribute(Qt::WA_TranslucentBackground);
}
QSize TranslucentRoundWindow::sizeHint() const
{
return QSize(300,300);
}
void TranslucentRoundWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::NoPen);
painter.setBrush(QColor(255,127));
painter.drawEllipse(0,width(),height());
}
如果您想要使用鼠标移动此窗口,则必须覆盖mousePressEvent,mouseMoveEvent和mouseReleaseEvent. (编辑:襄阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Chrome OS出错:Chromebook提前收到终止更新通知
- 英雄们都有不为人知另一面,Windows 10迎来有史以来最美一刻
- 重回榜首的BERT改进版开源了,千块V100、160GB纯文本的大模
- windows-7 – NtpClient将等待3473457分钟(超过6年!)才会进
- win10提醒windows错误恢复运行不上要怎么办
- Win10 专业版 32位全新系统下载
- Win10爆音卡顿 鼠标卡顿等问题修复办法
- 如何在Windows 10中增强文本光标和鼠标指针
- windows-server-2008 – 您使用Windows Server 2008 Server
- Linux常用命令:简单易学,但能解决95%以上的问题!
站长推荐
热点阅读

