Qt-透明窗体之异型窗体
2020-12-22 16:26
标签:lib ica src marked ide 技术 form mask define .pro main.cpp windowDesktop.h windowDesktop.cpp Qt-透明窗体之异型窗体 标签:lib ica src marked ide 技术 form mask define 原文地址:https://www.cnblogs.com/FKdelphi/p/14150385.html 1 QT += core gui
2
3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
4
5 CONFIG += c++11
6
7 # The following define makes your compiler emit warnings if you use
8 # any Qt feature that has been marked deprecated (the exact warnings
9 # depend on your compiler). Please consult the documentation of the
10 # deprecated API in order to know how to port your code away from it.
11 DEFINES += QT_DEPRECATED_WARNINGS
12
13 # You can also make your code fail to compile if it uses deprecated APIs.
14 # In order to do so, uncomment the following line.
15 # You can also select to disable deprecated APIs only up to a certain version of Qt.
16 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
17
18 SOURCES += 19 main.cpp 20 windowDesktop.cpp
21
22 HEADERS += 23 windowDesktop.h
24
25 FORMS += 26 mainwindow.ui
27
28 LIBS += -lUser32
29
30 # Default rules for deployment.
31 qnx: target.path = /tmp/$${TARGET}/bin
32 else: unix:!android: target.path = /opt/$${TARGET}/bin
33 !isEmpty(target.path): INSTALLS += target
34
35 RESOURCES += 36 resource.qrc
1 #include
1 #ifndef WINDOWDESKTOP_H
2 #define WINDOWDESKTOP_H
3
4 #include "QObject"
5 #include "QDialog"
6 #include "QLineEdit"
7 #include "QPainter"
8 #include "QWidget"
9 #include "QBitmap"
10
11 class Dialog : public QWidget
12 {
13 Q_OBJECT
14 public :
15 Dialog(QWidget *parent = 0);
16 ~Dialog();
17
18 virtual void paintEvent(QPaintEvent *event);
19 };
20
21
22 #endif // WINDOWDESKTOP_H
1 #include "windowDesktop.h"
2
3 Dialog::Dialog(QWidget *parent)
4 : QWidget(parent)
5 {
6 // 创建个LineEdit用来测试焦点
7 QLineEdit *le = new QLineEdit(this);
8 le->setGeometry(300, 150, 100, 30);
9
10 this->setAttribute(Qt::WA_TranslucentBackground, true);
11 }
12
13 Dialog::~Dialog()
14 {
15 }
16
17 void Dialog::paintEvent(QPaintEvent *event)
18 {
19 QBitmap bitMap(width( ), height( ));
20 //创建一个跟窗口一样的bitMap
21 QPainter bitMapPainter(&bitMap);
22 bitMapPainter.setPen(Qt::GlobalColor::color0);
23 //先填充
24 bitMapPainter.drawRect(0, 0, width( ), height( ));
25 //下面换成你自己的图片。
26 QPixmap imageTest(":/new/prefix1/1408266602_762236.png");
27 //然后bitMap就有了你的图片。
28 bitMapPainter.drawPixmap(0, 0, imageTest.width( ), imageTest.height( ), imageTest);
29 setMask(bitMap);
30 }
上一篇:C#不区分大小写的字符串替换
下一篇:Qt-透明窗体之半透明