社区
Qt
帖子详情
使用 QEventLoop 如何控制内存?
mysunshinexia
2014-12-11 12:51:50
需求:一个网络地址下有一张图片每一秒变动一次(例如:http://192.168.0.2/pull.bmp),需要读取这张图片 并刷新显示它!
我实现了基本的功能,但是内存却一直增长,没办法控制!有没有什么方法控制它内存不要增长?或者重复利用也可以!求大神帮忙看下!
...全文
813
5
打赏
收藏
使用 QEventLoop 如何控制内存?
需求:一个网络地址下有一张图片每一秒变动一次(例如:http://192.168.0.2/pull.bmp),需要读取这张图片 并刷新显示它! 我实现了基本的功能,但是内存却一直增长,没办法控制!有没有什么方法控制它内存不要增长?或者重复利用也可以!求大神帮忙看下!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yaozhiyong110
2015-09-10
打赏
举报
回复
引用 4 楼 oLuoJinFanHua12 的回复:
reply->deleteLater();
+1
lilong(DLC)
2015-09-09
打赏
举报
回复
reply->deleteLater();
mysunshinexia
2014-12-11
打赏
举报
回复
你在UI界面随便拖三个label ,不用改名字!你直接复制代码就可以!
mysunshinexia
2014-12-11
打赏
举报
回复
MainWindow .h ---------------------------------------------------------------------- #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QMovie> #include <QTimer> #include <QPixmap> #include <QNetworkAccessManager> #include <QPixmap> #include <QPixmap> #include <QNetworkReply> #include <QNetworkRequest> #include <QByteArray> #include <QUrl> #include <QTextEdit> #include <QEventLoop> #include <QLabel> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_label_linkActivated(const QString &link); void update(); void on_textBrowser_destroyed(); private: Ui::MainWindow *ui; QMovie *movie; QTimer *timer; int i; QUrl *url ; QNetworkAccessManager manager; QEventLoop loop; QNetworkReply *reply; }; #endif // MAINWINDOW_H -/*-------------------------------------------/*-------------------- mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); movie= new QMovie(); ui->label->setMovie(movie); //ui->label_3->setMovie(movie); i=0; timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update())); timer->start(45); //1s执行一次update() } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_label_linkActivated(const QString &link) { } void MainWindow::update() { i=i+1; if(i>5) i=1; switch(i) { //case 1:movie->setFileName("../1");movie->start();break; //case 2:movie->setFileName("../2");movie->start();break; //case 3:movie->setFileName("../3");movie->start();break; //case 4:movie->setFileName("../4");movie->start();break; //case 5:movie->setFileName("../5");movie->start();break; default:break; } /*<img src=\"http://192.168.3.3/pull.bmp\"/> */ QUrl url("http://img01.cztv.com/201412/05/8c0fb86122a38830b534fb8e4238d169.jpg"); //QUrl url("http://192.168.3.3/pull.bmp"); // qDebug() << "Reading picture form " << url; reply = manager.get(QNetworkRequest(url)); //请求结束并下载完成后,退出子事件循环 QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); //开启子事件循环 loop.exec(); QByteArray jpegData = reply->readAll(); QPixmap pixmap; pixmap.loadFromData(jpegData); ui->label_3->setPixmap(pixmap); // 你在QLabel显示图片 ui->label_3->resize (640,320 ); ui->label_2->setPixmap(pixmap); // 你在QLabel显示图片 ui->label_2->resize (640,320 ); ui->label_2->setStyleSheet("color:black"); //movie->start(); } void MainWindow::on_textBrowser_destroyed() { } -/*-------------------------------------------/*-------------------- main.cpp #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
mysunshinexia
2014-12-11
打赏
举报
回复
求大神!指导看一下!万分感激额!
QT定时器20161020.rar
QtE开发源码
plotter.rar
Qt4_双缓冲
操作系统进程管理与调度
今年的操作系统课程设计,觉得还不错,用qt做的界面,拿给大家分享。
qt class diagram
描述QT的类图关系,编程必须掌握的基本概念
关于Qt的常用类介绍
这个资源是关于QT的一些常用类介绍,word文档格式
Qt
16,816
社区成员
26,684
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章