可以实现一个摄像头的调用以及实时地区的天气显示,以及一个基于网页浏览模式的地图的调用
以及一个支持本地音乐播放的控件
本地的天气查询的解析以及调用函数
void Widget::recv_ack(QNetworkReply* r){QByteArray array= r->readAll();qDebug() << array.toStdString().c_str();//QJson----json制式字符串拆解// const char *text = buf.toStdString().c_str();// text = strstr(text, "weather");// ui->textEdit->setText(buf);QJsonParseError jsonParseError;QJsonDocument jsonDocument(QJsonDocument::fromJson(array, &jsonParseError));if(QJsonParseError::NoError != jsonParseError.error){qDebug() << QString("JsonParseError: %1").arg(jsonParseError.errorString());return;}QJsonObject js=jsonDocument.object();QString code=js.value("message").toString();if(code.contains("success")==false){qDebug()<<"cuowu";}qDebug()<<code;QString time=js.value("time").toString();qDebug()<<time;ui->textEdit->setText("时间:"+time);QJsonObject cityObj = js.value("cityInfo").toObject();QString city=cityObj.value("city").toString();qDebug()<<city;ui->textEdit->append("城市:"+city);QJsonObject data = js.value("data").toObject();QString wd=data.value("wendu").toString();ui->label->setText("当前温度:"+wd);QString shidu=data.value("shidu").toString();ui->textEdit->append("湿度:"+shidu);//QJsonObject wendu = js.value("forecast").toObject();//QString wd=wendu.value("high").toString();//ui->textEdit->append("最高温度:"+wd);if(data.contains("forecast")){qDebug()<<"OK";}QJsonValue valuelist=data.value("forecast");if(valuelist.isArray()){QJsonArray arr=valuelist.toArray();QJsonValue sarr=arr.at(0);QJsonObject wendu=sarr.toObject();QString high=wendu.value("high").toString();ui->textEdit->append("最高温度:"+high);QString low=wendu.value("low").toString();ui->textEdit->append("最低温度:"+low);QString week=wendu.value("week").toString();ui->textEdit->append("今日:"+week);QString tianqi=wendu.value("type").toString();ui->textEdit->append("天气:"+tianqi);}}void Widget::on_pushButton_clicked(){QString st;QString str=ui->comboBox->currentText();if(str=="成都"){st="101270101";}if(str=="北京"){st="101010100";}if(str=="上海"){st="101020100";}QNetworkRequest request;request.setUrl(QString("http://t.weather.sojson.com/api/weather/city/%0").arg(st));//request.setUrl(QString("http://t.weather.itboy.net/api/weather/city/成都"));http_acc->get(request);}
以及跳转窗口显示另一个窗口的音乐播放支持选择本地的音乐的选择加入以及上下首音乐的切换
音乐播放代码段
#include "yinyue.h"
#include "ui_yinyue.h"
#include <QFileDialog>
#include <QFile>
yinyue::yinyue(QWidget *parent) :
QWidget(parent),
ui(new Ui::yinyue)
{
ui->setupUi(this);
player=new QMediaPlayer;
playlist=new QMediaPlaylist;
}
void yinyue::yinyuelogin()
{
this->show();
}
yinyue::~yinyue()
{
delete ui;
}
void yinyue::on_pushButton_4_clicked()
{
files = QFileDialog::getOpenFileNames();
//playlist->set
ui->label->setText("音乐");
for(int j=0;j<files.length();j++)
{
ui->textBrowser->append(files[j]);
player->setMedia(QUrl::fromLocalFile(files[j]));//加入播放列表
playlist->addMedia(QUrl::fromLocalFile(files[j]));
}
player->setPlaylist(playlist);
}
void yinyue::on_pushButton_2_clicked()
{
// 开始播放
//playingSong = music;
//i=0;
//player->setMedia(QUrl::fromLocalFile(files[i]));
//player->setPosition(0);
player->play();
}
void yinyue::on_pushButton_clicked()
{
player->pause();
}
void yinyue::on_pushButton_5_clicked()
{
player->stop();
playlist->previous();
//player->setPlaylist(playlist);
player->play();
}
void yinyue::on_pushButton_3_clicked()
{
playlist->next();
//mplayer->setPlaylist(playlist);
player->play();
}
void yinyue::on_textBrowser_anchorClicked(const QUrl &arg1)
{
}
以及一个简单的摄像头的调用
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
void Dialog::recivelogin(){//显示这个界面
camera = new QCamera; //摄像头
viewfinder = new QCameraViewfinder(); //取景框
viewfinder->setFixedSize(640,430);
viewfinder->show();
camera->setViewfinder(viewfinder);
camera->start();
//ui->label->show();
}
Dialog::~Dialog()
{
delete ui;
}
以及基于Qwebengineview的简易地图功能的实现
#include "map.h"
#include "ui_map.h"
#include<iostream>
#include<QWebEngineView>
#pragma excution_character_set("utf_8")
map::map(QWidget *parent) :
QWidget(parent),
ui(new Ui::map)
{
ui->setupUi(this);
QWebEngineView *map=new QWebEngineView(this);
map->load(QUrl("file:你自己的HTML文件的路径名字"));
this->resize(1000,1000);
this->show();
}
map::~map()
{
delete ui;
}