直播平臺製作,私密內容自帶毛玻璃效果如何實現
直播平臺製作,私密內容自帶毛玻璃效果如何實現的相關程式碼
程式程式碼:
#ifndef SYSDIALOG_H #define SYSDIALOG_H #include <qdialog.h> #include <QGraphicsBlurEffect> #include <QGraphicsPixmapItem> #include <QPaintEvent> #include <QPainter> #include <QTimer> #include <QDebug> #include <QApplication> #include <QDesktopWidget> #include <QEvent> #include <QMouseEvent> #include <qscreen.h> #include <QHBoxLayout>//水平 #include <QVBoxLayout>//垂直 #include <qspinbox.h> class SysDialog : public QDialog { Q_OBJECT public: explicit SysDialog(QWidget *parent = nullptr); ~SysDialog(); void paintEvent(QPaintEvent *event); private: QVBoxLayout *Main_VBoxLayout; QHBoxLayout *Main_HBoxLayout; QSpinBox *Value_SpinBox; QColor bgColor; private slots: void Value_SpinBox_valueChanged_Slot(int v); }; #endif // SYSDIALOG_H #include "SysDialog.h" #include <qthread.h> #include <Windows.h> // enum AccentState { ACCENT_DISABLED = 0, ACCENT_ENABLE_GRADIENT = 1, ACCENT_ENABLE_TRANSPARENTGRADIENT = 2, ACCENT_ENABLE_BLURBEHIND = 3, ACCENT_INVALID_STATE = 4 }; struct AccentPolicy { AccentState AccentState; int AccentFlags; int GradientColor; int AnimationId; }; enum WindowCompositionAttribute { WCA_UNDEFINED = 0, WCA_NCRENDERING_ENABLED = 1, WCA_NCRENDERING_POLICY = 2, WCA_TRANSITIONS_FORCEDISABLED = 3, WCA_ALLOW_NCPAINT = 4, WCA_CAPTION_BUTTON_BOUNDS = 5, WCA_NONCLIENT_RTL_LAYOUT = 6, WCA_FORCE_ICONIC_REPRESENTATION = 7, WCA_EXTENDED_FRAME_BOUNDS = 8, WCA_HAS_ICONIC_BITMAP = 9, WCA_THEME_ATTRIBUTES = 10, WCA_NCRENDERING_EXILED = 11, WCA_NCADORNMENTINFO = 12, WCA_EXCLUDED_FROM_LIVEPREVIEW = 13, WCA_VIDEO_OVERLAY_ACTIVE = 14, WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15, WCA_DISALLOW_PEEK = 16, WCA_CLOAK = 17, WCA_CLOAKED = 18, WCA_ACCENT_POLICY = 19, WCA_FREEZE_REPRESENTATION = 20, WCA_EVER_UNCLOAKED = 21, WCA_VISUAL_OWNER = 22, WCA_LAST = 23 }; struct WindowCompositionAttributeData { WindowCompositionAttribute Attribute; int * Data; int SizeOfData; }; typedef int* (*pfun)(HWND hwnd, WindowCompositionAttributeData *data); SysDialog::SysDialog(QWidget *parent) : QDialog(parent) { // setWindowFlags(Qt::FramelessWindowHint); HWND hWnd = HWND(winId()); HMODULE hUser = GetModuleHandle(L"user32.dll"); if (hUser) { pfun setWindowCompositionAttribute = (pfun)GetProcAddress(hUser, "SetWindowCompositionAttribute"); if (setWindowCompositionAttribute) { // AccentPolicy accent = { ACCENT_ENABLE_BLURBEHIND, 0x20 | 0x40 | 0x80 | 0x100, 0, 0 }; AccentPolicy accent = { ACCENT_ENABLE_BLURBEHIND,0, 0, 0 }; WindowCompositionAttributeData data; data.Attribute = WCA_ACCENT_POLICY; data.Data = reinterpret_cast<int *>(&accent) ; data.SizeOfData = sizeof(accent); setWindowCompositionAttribute(hWnd, &data); } } this->setAttribute(Qt::WA_TranslucentBackground);//設定視窗背景透明 // setWindowOpacity(1); setWindowTitle(QString("")); Main_VBoxLayout = new QVBoxLayout(this); Main_HBoxLayout = new QHBoxLayout; Value_SpinBox = new QSpinBox; Value_SpinBox->setMaximum(255); Value_SpinBox->setValue(50); connect(Value_SpinBox, SIGNAL(valueChanged(int)), this, SLOT(Value_SpinBox_valueChanged_Slot(int))); Main_HBoxLayout->addWidget(Value_SpinBox,0); Main_HBoxLayout->addStretch(); Main_HBoxLayout->setContentsMargins(0,0,0,0); Main_HBoxLayout->setSpacing(0); Main_VBoxLayout->addLayout(Main_HBoxLayout,0); Main_VBoxLayout->addStretch(); Main_VBoxLayout->setContentsMargins(0,0,0,0); Main_VBoxLayout->setSpacing(0); resize(900,600); // bgColor = QColor(255, 255, 255, 100); } SysDialog::~SysDialog() { delete Main_VBoxLayout; } void SysDialog::Value_SpinBox_valueChanged_Slot(int v) { qDebug()<<v; bgColor.setAlpha(v); update(); } /* * Event Function */ void SysDialog::paintEvent(QPaintEvent *event) { static bool v = false; if (v) return; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::NoPen); painter.setBrush(bgColor); painter.drawRoundedRect(rect(), 0, 0); v = true; //painter.fillRect(ui.frame->rect(), bgColor); }
以上就是直播平臺製作,私密內容自帶毛玻璃效果如何實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2869367/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播平臺原始碼,用CSS製作毛玻璃效果(高斯模糊效果)原始碼CSS
- 直播平臺製作,Flutter ChoiceChip 用來實現選擇標籤效果Flutter
- 直播平臺製作,css之如何清除浮動CSS
- 直播平臺製作,依靠C語言實現圖片輪播C語言
- 直播平臺開發,使用swiper實現輪播效果
- 直播平臺製作,ViewPager自動輪播,手指按住停止輪播Viewpager
- 直播平臺搭建原始碼,java相簿製作原始碼Java
- 直播平臺製作,使用 NProgress 進度條
- Android 毛玻璃效果的實現Android
- 使用CSS3製作導航條和毛玻璃效果CSSS3
- 直播平臺製作,登入頁面的切換
- 毛玻璃效果在Android的實現Android
- 使用Glide快速實現毛玻璃效果IDE
- 直播平臺搭建原始碼,bootstrap實現圖片輪播效果原始碼boot
- 拖動滾動條實現內容自動載入效果
- 自媒體釋出平臺,釋出多個平臺,多渠道展現內容
- 直播平臺原始碼,頂部標籤欄及內容列表的設計與實現原始碼
- 直播帶貨平臺,仿某寶實現商品上下滑動
- 直播平臺製作,SwipeRefreshLayout下拉重新整理的用法
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView
- 如何在Swiper內製作CSS3動畫效果CSSS3動畫
- Xbox大佬:允許旗下工作室面向多平臺製作內容
- 一對一平臺製作,如何實現文字超出顯示為省略號?
- 成品直播原始碼,實現在平臺內部的搜尋原始碼
- html網頁內容如何實現上標和下標效果HTML網頁
- 直播帶貨平臺開發,實現音影片同步演算法演算法
- 直播app製作涉及資料傳輸內容請看這裡APP
- 直播平臺搭建,uni-app 實現搜尋關鍵詞高亮效果APP
- js實現的文字框輸入內容自動提示效果程式碼JS
- js 實現點選複製內容JS
- 毛玻璃效果
- 直播內容搶先看 | 基於AUTOSAR技術的SOA軟體平臺實踐
- 視訊直播app原始碼,將內容推薦給平臺內的好友APP原始碼
- 直播帶貨平臺開發流量體現是重中之重!
- 直播帶貨平臺原始碼,利用ProgressBar實現垂直、水平進度條原始碼
- 直播平臺製作,禁止頁面滾動 / 滾動事件穿透事件穿透
- 直播平臺製作,文字過多時,自動摺疊顯示檢視更多選項
- 自媒體如何打造平臺爆款內容!這幾步非常重要!!!