qt插入图片的方法文档格式.docx

上传人:b****6 文档编号:16188022 上传时间:2022-11-21 格式:DOCX 页数:13 大小:427.87KB
下载 相关 举报
qt插入图片的方法文档格式.docx_第1页
第1页 / 共13页
qt插入图片的方法文档格式.docx_第2页
第2页 / 共13页
qt插入图片的方法文档格式.docx_第3页
第3页 / 共13页
qt插入图片的方法文档格式.docx_第4页
第4页 / 共13页
qt插入图片的方法文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

qt插入图片的方法文档格式.docx

《qt插入图片的方法文档格式.docx》由会员分享,可在线阅读,更多相关《qt插入图片的方法文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

qt插入图片的方法文档格式.docx

frame->

resize(400,700);

QPixmappixmap("

images/frame.png"

);

QPalette 

palette;

palette.setBrush(frame->

backgroundRole(),QBrush(pixmap));

setPalette(palette);

frame->

setMask(pixmap.mask());

//可以将图片中透明部分显示为透明的

 

setAutoFillBackground(true);

show();

return 

app.exec();

}

注意图片路径怎么表示,我的图片放在该工程下的images文件夹中。

存在问题:

图片可以显示出来,但是图片大小不能和frame大小一致,显示效果不好,具体怎样调整大小,以后再补充,效果如下(设置了透明的,好像很漂亮~透明部分将我的桌面显示出来了~_~):

2.setStyleSheet方法(非常好用的方法)

setObjectName("

myframe"

setStyleSheet("

QFrame#myframe{border-image:

url(images/frame.png)}"

效果如下:

注意:

很漂亮的效果吧~~注意代码中红线的部分噢,设置ObjectName后,才能保证setStyleSheet只作用在我们的frame上,不影响其子控件的背景设置。

之所以用border-image而不用background-image,还是上面的问题,用background-image不能保证图片大小和控件大小一致,图片不能完全显示,这个以后再补充了,现在还没有找到方法。

3.paintEvent事件方法

//myframe.h文件

#ifndef 

MYFRAME_H

#define 

QWidget>

class 

MyFrame 

:

public 

QWidget

public:

MyFrame();

void 

paintEvent(QPaintEvent 

*event);

};

#endif 

// 

//myframe.cpp文件

"

myframe.h"

MyFrame:

MyFrame()

*event)

QPainter 

painter(this);

painter.drawPixmap(0,0,400,700,QPixmap("

));

//main.cpp文件

MyFrame;

注:

跟前面一样的效果吧,与前面的差别就是这个背景图片不随着窗口的大小而变化,因为它的固定大小被设置成(400,700)了。

重写QWidget的paintEvent事件,当控件发生重绘事件,比如show()时,系统就会自动调用paintEvent函数。

好了,上面是三种设置背景图片的方法,下面我要说一个设置QPushButton的背景图片的方法,用的是setIcon方法(其实QPushButton设置背景图片也可以用前面三种方法的,不过现在这种Icon方法的看起来也不错)

QPushButton 

button0 

QPushButton(frame);

button1 

button2 

button3 

button4 

button5 

button0->

setGeometry(60,150,68,68);

button1->

setGeometry(160,150,68,68);

button2->

setGeometry(260,150,68,68);

button3->

setGeometry(60,280,68,68);

button4->

setGeometry(160,280,68,68);

button5->

setGeometry(260,280,68,68);

QIcon 

icon;

QPixmap 

pixmap0("

images/SMS.png"

icon.addPixmap(pixmap0);

setIcon(icon);

setIconSize(QSize(68,68));

setFixedSize(pixmap0.size());

setMask(pixmap0.mask());

pixmap1("

images/EMail.png"

icon.addPixmap(pixmap1);

setFixedSize(pixmap1.size());

setMask(pixmap1.mask());

pixmap2("

images/Contacts.png"

icon.addPixmap(pixmap2);

setFixedSize(pixmap2.size());

setMask(pixmap2.mask());

pixmap3("

images/Calendar.png"

icon.addPixmap(pixmap3);

setFixedSize(pixmap3.size());

setMask(pixmap3.mask());

pixmap4("

images/GoogleVoice.png"

icon.addPixmap(pixmap4);

setFixedSize(pixmap4.size());

setMask(pixmap4.mask());

pixmap5("

images/AndroidMarket.png"

icon.addPixmap(pixmap5);

setFixedSize(pixmap5.size());

setMask(pixmap5.mask());

图标效果不错吧~_~

好了,今天就写到这里,以后有新的内容再补充。

补充,这样就可以让图片跟窗口一样大小了。

QImage 

image1;

image1.load("

images/frame1.jpg"

image2 

image1.scaled(400,700);

palette.setBrush(frame->

backgroundRole(),QBrush(image2));

//可以将图片中透明部分显示为透明的

QT显示图片的方法有很多

大致为

label上显示

直接画出来

容器显示

1---------------显示gif图片(label上显示)

在QT中要显示GIF图片,不能通过单单的添加部件来完成.

还需要手动的编写程序.

工具:

QTCreator

新建一个工程,我们先在designer中,添加一个QLabel部件.

如下图:

将QLabel拉成适当大小.

在类cpp函数中添加如下程序:

#include"

widget.h"

ui_widget.h"

#include<

QLabel>

QMovie>

Widget:

Widget(QWidget*parent):

QWidget(parent),

ui(newUi:

Widget)

ui->

setupUi(this);

QMovie*movie=newQMovie("

D:

/Project/Qt/testclass/2.gif"

label->

setMovie(movie);

movie->

start();

~Widget()

deleteui;

这里要注意QMovie中的路径名:

这里的路径斜杠和WINDOWS下是相反的.WINDOWS下默认是反斜杠.

编译,运行就没有问题,就会看到GIF文件在播放了.

当文档GIF图片显示:

QtGui/QApplication>

intmain(intargc,char*argv[])

QApplicationapp(argc,argv);

QLabel*label=newQLabel();

/Project/Qt/firstQT/2.gif"

returnapp.exec();

2-------------------------label上显示图片------------------

把你的label.png放到工程目录顶层,直接

QPixmappixmap("

label.png"

title_label->

setPixmap(pixmap);

---

可以直接:

setPixmap(QPixmap("

./pic.jpg"

或者:

QImage*image=newQImage("

setPixmap(QPixmap:

fromImage(image));

再或者在中途换某个图像的话:

./pic1.jpg"

...........

image->

load("

./pic2.jpg"

3----------直接画出图片-------------------------

voidlogindlg:

paintEvent(QPaintEvent*)

QPainterpainter(this);

QPixmappix;

pix.load("

/QT/login/login/images/delta.png"

painter.drawPixmap(0,0,100,33,pix);

//painter.drawLine(0,0,100,100);

4-----------程序启动时的图片

QApplicationapp(argc, 

argv);

QSplashScreen 

*splash 

QSplashScreen;

splash->

/images/splash.png"

//设置图片

//显示图片

Qt:

AlignmenttopRight 

Qt:

AlignRight 

AlignTop;

showMessage(QObject:

tr("

Settingupthemainwindow..."

),topRight, 

white);

//显示信息

MainWindowmainWin;

Loadingmodules..."

),

topRight, 

loadModules();

Establishingconnections..."

establishConnections();

mainWin.show();

finish(&

mainWin);

//图片一直显示到mainWin加载完成

delete 

splash;

//释放空间,节省内存

来自:

首先你得加载一张能显示透明的图片,jpg格式肯定是不行的,一般都是png

还有不同的部件加载图片的方法也不太相同,比如:

QLabel加载图片:

C/C++code

QStringstrPath=imagePath.value(day);

//图片路径

QPixmappix(strPath);

dayLabel->

setPixmap(pix);

QPushButton加载图片:

button->

setIcon(QIcon("

toolbutton.png"

button->

setIconSize(QSize(48,48));

其中setIconSize函数是用来截取图片的显示区域,如果没有该函数,该图片是被缩放的放到图片上

用调色板加载图片:

QPalettep=palette();

p.setBrush(QPalette:

Button,QBrush(QPixmap("

)));

setPalette(p);

另外实现按钮的透明:

setFlat(true);

还有就是用绘制事件函数了:

QPixmaparrayImage("

/home/image/array.png"

//图片路径

QRectarrayRect(0,0,50,50);

//截取图片区域

QPainterpainter;

painter.drawPixmap(QPoint(100,100),arrayImage,arrayRect);

//打印图片

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1