专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

qt哪个控件可以显示网络图片,该如何解决

发布时间:2010-05-30 19:56:20 文章来源:www.iduyao.cn 采编人员:星星草
qt哪个控件可以显示网络图片
qt哪个控件可以显示网线图片,如http://img2.tuicool.com/xx.jpg这一类的
最好能实现像
<a href=''><img src="url"></a>
的功能的控件

我试了Qpixmap, Qpicture,  QQlabel的设置背景,QtextBrowser,发现这些似乎只能加载本地图片

哪位大侠知道QT哪个控件可以实现上述的功能么。控制不需要功能太强大,只需要能实现
<a href=''><img src="url"></a>
的功能就可以了

先谢过了
------解决方案--------------------
CImage::CImage(QWidget  *parent):QDialog(parent)
{
    ImageLabel=new QLabel(tr("loading....."));

    QVBoxLayout *vboxLayout = new QVBoxLayout;
    vboxLayout->addWidget(ImageLabel);
    setLayout(vboxLayout);

    setWindowTitle(tr("load picture"));
    resize(300, 200);

    currentPicture = new QPixmap;

    //获取网络图片
    QNetworkAccessManager *manager;
    manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl("http://www.oschina.net/img/logo_s2.png")));
}


void CImage::replyFinished(QNetworkReply *reply)
{
    if(reply->error() == QNetworkReply::NoError)
    {
        //获取字节流构造 QPixmap 对象
        currentPicture->loadFromData(reply->readAll());
        QDateTime now;
        QString filename = now.currentDateTime().toString("yyMMddhhmmss.jpg");
        currentPicture->save(filename);//保存图片
        currentFileName = filename;

        //可以在onpaint中 用QPixmap 显示currentPicture,则这种方法则不需要保存

        //显示图片,
        QMovie *move = new QMovie(currentFileName);
        ImageLabel->setMovie(move);
        move->start();
    }
}
------解决方案--------------------
据我所知,下载过来再显示似乎是唯一的方法。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: