对接了web

This commit is contained in:
shenmo 2020-06-26 18:34:15 +08:00
parent 72501163d4
commit 536377d013
4 changed files with 88 additions and 35 deletions

@ -10,7 +10,7 @@ MainWindow::MainWindow(QWidget *parent)
w = new Widget;
resize(w->size()); //设置窗口大小
setMinimumSize(900,700);
setMinimumSize(900,750);
setCentralWidget(w);
}

@ -16,6 +16,7 @@
#include <QtConcurrent> //并发
#include <QSettings>
#include <QIcon>
#include <QWebFrame>
#include <QGraphicsOpacityEffect>
Widget::Widget(QWidget *parent) :
QWidget(parent),
@ -26,6 +27,7 @@ Widget::Widget(QWidget *parent) :
ui->setupUi(this);
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);//用来激活接受linkClicked信号
ui->webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
ui->stackedWidget->setCurrentIndex(0);
ui->listWidget->hide();
ui->label_setting1->hide();
@ -57,24 +59,22 @@ Widget::Widget(QWidget *parent) :
}else {
serverUrl="http://dcstore.shenmo.tech/";
}
ui->webView->setUrl(serverUrl+"store/");
configCanSeve=true;
qDebug()<<serverUrl;
menuUrl[0]=serverUrl + "";
menuUrl[1]=serverUrl + "store/network/";
menuUrl[2]=serverUrl + "store/chat/";
menuUrl[3]=serverUrl + "store/music/";
menuUrl[4]=serverUrl + "store/video";
menuUrl[5]=serverUrl + "store/image_graphics/";
menuUrl[6]=serverUrl + "store/games/";
menuUrl[7]=serverUrl + "store/";
menuUrl[8]=serverUrl + "store/reading/";
menuUrl[9]=serverUrl + "store/development/";
menuUrl[10]=serverUrl + "store/tools/";
menuUrl[11]=serverUrl + "store/others/";
menuUrl[12]=serverUrl + "themes";
menuUrl[0]=serverUrl + "store/#/";
menuUrl[1]=serverUrl + "store/#/network/";
menuUrl[2]=serverUrl + "store/#/relations";
menuUrl[3]=serverUrl + "store/#/musicandsound";
menuUrl[4]=serverUrl + "store/#/videos";
menuUrl[5]=serverUrl + "store/#/photos";
menuUrl[6]=serverUrl + "store/#/games/";
menuUrl[7]=serverUrl + "store/#/office";
menuUrl[8]=serverUrl + "store/#/reading/";
menuUrl[9]=serverUrl + "store/#/programming";
menuUrl[10]=serverUrl + "store/#/tools/";
menuUrl[11]=serverUrl + "store/#/others/";
menuUrl[12]=serverUrl + "store/#/themes";
ui->webView->setUrl(menuUrl[0]);
for (int i =0; i<15;i++){
download_list[i].num=i;
}
@ -86,7 +86,7 @@ Widget::Widget(QWidget *parent) :
opacityEffect_2->setOpacity(0.2);
ui->line1_widget->setGraphicsEffect(opacityEffect_1);
ui->line2_widget->setGraphicsEffect(opacityEffect_2);
connect(ui->webView->page(),SIGNAL(javaScriptWindowObjectCleared()),this,SLOT([=](){qDebug()<<" ";}));
}
Widget::~Widget()
@ -96,10 +96,47 @@ Widget::~Widget()
void Widget::on_webView_linkClicked(const QUrl &arg1)
{
//这里通过获取url的方式和现有web不符
// qDebug()<<arg1;
// //判断,如果末尾是/就直接访问如果是app.json就打开详情页
// if(arg1.path().right(1)=="/"){
// ui->webView->setUrl(arg1);
// }else if(arg1.path().right(8)=="app.json"){
// load.cancel();//打开并发加载线程前关闭正在执行的线程
//// load.waitForFinished();
// QPixmap pixmap_null;//一个空的图片指针,用来清空先有内容
// ui->label_appicon->setPixmap(pixmap_null);
// ui->screen_1->setPixmap(pixmap_null);
// ui->screen_2->setPixmap(pixmap_null);
// ui->screen_3->setPixmap(pixmap_null);
// ui->screen_4->setPixmap(pixmap_null);
// ui->screen_5->setPixmap(pixmap_null);
// //先隐藏详情页负责显示截图的label
// ui->screen_1->hide();
// ui->screen_2->hide();
// ui->screen_3->hide();
// ui->screen_4->hide();
// ui->screen_5->hide();
// ui->label_more->setText("");//清空详情介绍
// ui->label_info->setText("");
// ui->label_appname->setText("");
// ui->pushButton->setEnabled(false);
// ui->stackedWidget->setCurrentIndex(2);
// load.cancel();//打开并发加载线程前关闭正在执行的线程
// load = QtConcurrent::run([=](){
// loadappinfo(arg1);
// });
// }
}
void Widget::on_webView_loadStarted()
{
ui->label_show->setText("正在加载,请稍候");
ui->label_show->show();
QUrl arg1=ui->webView->page()->mainFrame()->requestedUrl().toString();
qDebug()<<arg1;
//判断,如果末尾是/就直接访问如果是app.json就打开详情页
if(arg1.path().right(1)=="/"){
ui->webView->setUrl(arg1);
}else if(arg1.path().right(8)=="app.json"){
if(arg1.path().right(8)=="app.json"){
load.cancel();//打开并发加载线程前关闭正在执行的线程
load.waitForFinished();
QPixmap pixmap_null;//一个空的图片指针,用来清空先有内容
@ -120,6 +157,7 @@ void Widget::on_webView_linkClicked(const QUrl &arg1)
ui->label_appname->setText("");
ui->pushButton->setEnabled(false);
ui->stackedWidget->setCurrentIndex(2);
load.cancel();//打开并发加载线程前关闭正在执行的线程
load = QtConcurrent::run([=](){
loadappinfo(arg1);
});
@ -151,7 +189,8 @@ void Widget::loadappinfo(QUrl arg1)
ui->label_show->show();
//软件信息加载
QString info;
info="版本号:"+json["Version"].toString()+"\n";
info="包名:"+json["Pkgname"].toString()+"\n";
info+="版本号:"+json["Version"].toString()+"\n";
if(json["Author"].toString()!="" && json["Author"].toString()!=" "){
info+="作者:"+json["Author"].toString()+"\n";
}
@ -225,6 +264,7 @@ void Widget::loadappinfo(QUrl arg1)
void Widget::chooseLeftMenu(int index)
{
nowMenu=index;
for (int i=0;i<15;i++) {
load.cancel();//打开并发加载线程前关闭正在执行的线程
left_list[i]->setStyleSheet("");
@ -413,19 +453,18 @@ void Widget::on_menu_btn_settings_clicked()
}
void Widget::on_pushButton_2_clicked()
{
ui->webView->setUrl(menuUrl[nowMenu]);
ui->stackedWidget->setCurrentIndex(0);
}
void Widget::on_webView_loadStarted()
{
ui->label_show->setText("正在加载,请稍候");
ui->label_show->show();
}
void Widget::on_webView_loadFinished()
{
ui->label_show->setText("");
ui->label_show->hide();
if(ui->webView->page()->mainFrame()->requestedUrl().toString().right(5)!=".json"){
ui->label_show->setText("");
ui->label_show->hide();
}
}

@ -96,6 +96,7 @@ private:
QWidget * left_menu_bg[15];
QUrl menuUrl[13];
bool configCanSeve=false;
int nowMenu=0;
};

@ -38,7 +38,7 @@
<number>0</number>
</property>
<property name="currentIndex">
<number>1</number>
<number>2</number>
</property>
<widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_4">
@ -136,8 +136,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>299</width>
<height>770</height>
<width>781</width>
<height>815</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_17">
@ -367,7 +367,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>376</width>
<width>747</width>
<height>325</height>
</rect>
</property>
@ -474,6 +474,19 @@
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
@ -495,8 +508,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>547</width>
<height>130</height>
<width>765</width>
<height>595</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_23">