qt窗口设置背景图片文件路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt窗口设置背景图片文件路径相关的知识,希望对你有一定的参考价值。
1 首先需要在Qt的工程文件中添加背景图片资源,可以将图片文件拖拽到Qt的资源管理器中,也可以在.pro文件中添加2 在窗口的构造函数中调用setStyleSheet函数设置背景图片样式,样式中使用url函数指定图片文件的路径
3 延伸内容:在设置背景图片时还可以指定图片的平铺方式、透明度等属性,也可以使用动画效果实现图片的渐变切换。
此外,如果需要在程序运行时动态更改背景图片,可以使用QPalette类来实现。 参考技术A 在Qt中可以通过QPalette来设置窗口背景图片,具体步骤如下:
1.使用QPalette创建一个新的调色板对象;
2.使用QImage从文件读取图片;
3.使用QPixmap转换QImage;
4.将QPixmap设置为背景;
5.设置该调色板到窗口;
6.重新绘制窗口,即可显示背景图片。
qt中窗口绘制——图片的绘制
在qt 中,QPixmap 用于表示一张图片,支持png,jpg格式的加载。
QPixmap pm("c:/test.png"); 或者 QPixmap pm; pm.load("c:/test/png");
QT中图片的路径分为两种:
(1)文件系统中的图片:使用绝对路径或者相对路径。
(2)资源中的文件:以冒号开头例如:/Test/source/logo.jpg
绘制的参数:
(1)源矩形
可以绘制图形的全部,也可以绘制其中的一部分。
QRect source(0,0,ima_width,img_height);
(2)目标矩形
可以填充到全部窗口,也可以只填充一部分
QRect target(0,0,width/2,height/2);
调用的函数:
painter.drawPixmap(target,m_picture,source)
circlewidget.h
#ifndef CIRCLAWIDGET_H #define CIRCLAWIDGET_H #include <QFrame> #include<QTimer> #include<QPixmap> class CircleWidget:public QFrame { Q_OBJECT public: CircleWidget(QWidget *parent); ~CircleWidget(); private: void paintEvent(QPaintEvent *event); private: QPixmap m_picture; }; #endif // CIRCLAWIDGET_H
circlewidget.cpp
# include"circlewidget.h" #include<QPainter> CircleWidget::CircleWidget(QWidget *parent):QFrame(parent) { m_picture.load("/home/jun/untitled1/backimage.PNG"); } CircleWidget::~CircleWidget() { } void CircleWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); int width=this->width(); int height=this->height(); QRect target(0,0,width,height); int img_width=m_picture.width(); int img_height=m_picture.height(); QRect source (0,0,img_width,img_height); painter.drawPixmap(target,m_picture,source); }
结果:
以上是关于qt窗口设置背景图片文件路径的主要内容,如果未能解决你的问题,请参考以下文章