石家庄公司建站,合肥论坛网站建设,怎么找客户的联系方式,wordpress是建站工具 还是语言一、新建TransparentDemo工程
二、在界面上添加label#xff0c;修改样式表#xff0c;将底色置为红色#xff0c;作为北京 三、新建一个TransparentLabel类#xff0c;继承自QLabel
此时#xff0c;工程包括文件 五、在transparentlabel.h中添加 头文件
#include …一、新建TransparentDemo工程
二、在界面上添加label修改样式表将底色置为红色作为北京 三、新建一个TransparentLabel类继承自QLabel
此时工程包括文件 五、在transparentlabel.h中添加 头文件
#include QLabel
#include QPainter
添加构造函数
TransparentLabel(QWidget *parentnullptr);添加重绘函数paintEvent
void paintEvent(QPaintEvent *) override;如下图
#ifndef TRANSPARENTLABEL_H
#define TRANSPARENTLABEL_H#include QLabel
#include QPainter
class TransparentLabel : public QLabel
{
public:TransparentLabel();TransparentLabel(QWidget *parentnullptr);
protected:void paintEvent(QPaintEvent *) override;
};#endif // TRANSPARENTLABEL_H六、在transparentlabel.cpp中实现构造函数和重绘函数如下
#include transparentlabel.hTransparentLabel::TransparentLabel()
{}
TransparentLabel::TransparentLabel(QWidget* parent):QLabel(parent){}void TransparentLabel::paintEvent(QPaintEvent *){//读取图片路径QString imagePath D:\\picture\\ming3.png;//读取图片QPixmap pixmap(imagePath);//获取当前label的大小QRect rectthis-geometry();//将图像大小缩放适合labelQPixmap scaledPixmap pixmap.scaled(QSize(rect.width(),rect.height()));//在label上绘图QPainter painter(this);//设置透明度painter.setOpacity(0.4);//绘图painter.drawPixmap(0, 0,scaledPixmap);//将此label放在最上层this-raise();
}
七、在ui文件中添加 “添加图片” 按钮 八、在mainwindow.h中添加头文件和transparentlabel成员、添加图片按钮槽函数
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include QMainWindow
#include transparentlabel.h
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;TransparentLabel *transparentLabel;
};
#endif // MAINWINDOW_H
九、在mainwindow.cpp中实现按钮槽函数并且在构造函数中初始化transparentLabel变量隐藏
#include mainwindow.h
#include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui-setupUi(this);transparentLabel new TransparentLabel(this);transparentLabel-hide();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{QRect label_geometryui-label-geometry();//获取label大小transparentLabel-setGeometry(label_geometry);//设置透明label的位置transparentLabel-show();//显示
}
十、运行效果点击之后在红色背景label上显示透明的图像 20230801_155459