Qt 在可视窗口部件上绘图

news/2024/7/8 5:35:45 标签: qt, image, class, 图形, 工作, ui
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">  Qt支持在界面上显示多种存储格式图片(bmp、jpg、jpeg、gif、png等等),支持各种各样的绘图功能(各种图形,包括各种填充操作),所以,使用Qt做出漂亮的图形界面是没有任何问题的。在这里,简单的记录一下Qt的界面显示图片功能。

    能够显示图片的部件非常多,几乎所有可见的对象都可以显示图片。

    一、界面上显示静态图片

    在这个类的声明中,重写了基类的paintEvent函数,这个函数中我们主要实现某些界面重绘工作!绘制曲线与图片的时候,主要使用到的Qt类有:QPainter、QPixmap、QImage等,辅助类(定位图片、确定形状等作用):QLine、QLineF、QRect、QRectF等。

class MainWindow : public QMainWindow

{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
protected:
    void paintEvent(QPaintEvent *event);
... ...

}

    类的实现中,paintEvent函数实现如下:

void MainWindow::paintEvent(QPaintEvent *event)

{
    QRectF target(10,10,330,250);
    QRectF source(0,0,320,240);
    QPixmap class="tags" href="/tags/IMAGE.html" title=image>image("./class="tags" href="/tags/IMAGE.html" title=image>images/help.png");
 
    QPainter painter(this);
    painter.drawPixmap(target,class="tags" href="/tags/IMAGE.html" title=image>image,source);
}

    

    二、界面上显示GIF图片

    以QMainWindow为基类派生新类,当然你可以完全没有必要像我这样做 

    GIF绘制工作是在派生类的构造中完成的。一般情况下,gif图片由QMovie对象加载,显示是在QLabel对象上完成的。

class MainWindow : public QMainWindow

{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
protected:
    void paintEvent(QPaintEvent *event);     
private:
    ... ...
    QMovie *movie;
};
 
类的实现:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),ui(new Ui::MainWindow)
{
    
    movie = new QMovie("./gif/mdcg.gif");//加载工程目录下的gif目录下的GIF文件
    ui->label->setMovie(movie);
    this->movie->start();
}
 
实现后的效果如图:

http://www.niftyadmin.cn/n/1629420.html

相关文章

Linux之守护进程

目录 一.守护进程 二.进程组 / 组长进程 / 会话 / 会话首进程 三.守护进程的创建 一.守护进程 1.什么是守护进程 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服…

Spring错误

今天在学习spring的aop操作时碰到了一个问题: Caused by: org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces. 解决办法: …

嵌入式linux与ARM开发板的入门建议

第一,学习基本的【非法词语被屏蔽】机编程。 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一开始就学 linux系统、学移植那么只会马上就陷入一个很深的漩涡。我在刚刚开始学A…

【搬运】Wget 命令详解

用过 Linux 系统的对于 wget 不陌生吧,从网上下载资源等操作都是少不了它,它体积小但功能集全,支持 FTP HTTP HTTPS 协议下载方式,支持断点续传 代理服务器。 现在 Windows 做为最主流的操作系统,许多 Linux 上的开源软…

一张图让你记住uml的常用关系的简单图例

原来看过一本设计模式上面写的有关常用关系的图,自己记录了下来,今天用pd绘制一下,方便记忆!

操作系统课程设计-银行家算法

选了这个题目的同学有福了&#xff0c;可以参考一下~~~ 有一些注释……? 另外……如果执行结果是乱码&#xff0c;把#define N 40改为更大的数。 多说一句&#xff1a;如果真的有帮助&#xff0c;麻烦给个评论再走呗~~~ 1 #include <iostream>2 #include <cstring>…

回调函数—看这篇就够了!

https://www.runoob.com/w3cnote/c-callback-function.html

bzoj千题计划256:bzoj2194: 快速傅立叶之二

http://www.lydsy.com/JudgeOnline/problem.php?id2194 相乘两项的下标 的 差相同 那么把某一个反过来就是卷积形式 fft优化 #include<cmath> #include<cstdio> #include<iostream> #include<algorithm>using namespace std;const int N(1<<18)…