简易中控系统

可以实现一个摄像头的调用以及实时地区的天气显示,以及一个基于网页浏览模式的地图的调用

以及一个支持本地音乐播放的控件

 

本地的天气查询的解析以及调用函数 

 

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;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值