用Qt显示半透明/不规则形状的窗户
发布时间:2021-01-18 05:45:02 所属栏目: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. (编辑:孝感站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- TextMate免费开源的老牌代码编辑器
- Windows 11 云母 效果将显现在更多应用上 微软
- Win7系统出现蓝屏且提示错误代码0x000000C5怎么办
- 修复Windows 10上的Windows Update错误0xc1900130
- windows-server-2008-r2 – 我需要打开哪些防火墙端口才能使
- Chrome for Windows 10 ARM已经被独立开发人员成功编译出来
- 微软Win11全新现代任务管理器更多曝光功能感受
- Windows – 如何启用BitLocker而不向最终用户提示
- 在Linux中如何查找一个命令或进程的执行时间
- 比Spark快100倍的GPU加速SQL引擎!BlazingSQL开源了
站长推荐
热点阅读