跟紧maicss

This commit is contained in:
“shenmo” 2020-06-23 01:09:50 +08:00
parent 55652d9b9e
commit 1bbf51981f
5 changed files with 151 additions and 137 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.8.2, 2020-06-22T07:31:53. --> <!-- Written by QtCreator 4.8.2, 2020-06-22T17:37:30. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>

View File

@ -34,7 +34,7 @@ void downloadlist::setName(QString name)
QString downloadlist::getName() QString downloadlist::getName()
{ {
return ui->label->text(); return ui->label_filename->text();
} }
void downloadlist::readyInstall() void downloadlist::readyInstall()
@ -59,6 +59,7 @@ void downloadlist::setFileName(QString fileName)
void downloadlist::on_pushButton_clicked() void downloadlist::on_pushButton_clicked()
{ {
system("deepin-terminal -e sudo dpkg -i ./"+ui->label_filename->text().toUtf8()+" && sudo apt install -f"); // system("deepin-terminal -e \"sudo dpkg -i ./"+ui->label_filename->text().toUtf8()+" ; sudo apt install -f\"");
system("deepin-terminal -e sudo apt install -y ./"+ui->label_filename->text().toUtf8());
qDebug()<<ui->label_filename->text().toUtf8(); qDebug()<<ui->label_filename->text().toUtf8();
} }

View File

@ -24,11 +24,7 @@ Widget::Widget(QWidget *parent) :
ui->stackedWidget->setCurrentIndex(0); ui->stackedWidget->setCurrentIndex(0);
ui->listWidget->hide(); ui->listWidget->hide();
manager = new QNetworkAccessManager(this); manager = new QNetworkAccessManager(this);
ui->screen_1->hide();
ui->screen_2->hide();
ui->screen_3->hide();
ui->screen_4->hide();
ui->screen_5->hide();
} }
Widget::~Widget() Widget::~Widget()
@ -38,42 +34,114 @@ Widget::~Widget()
void Widget::on_webView_linkClicked(const QUrl &arg1) void Widget::on_webView_linkClicked(const QUrl &arg1)
{ {
//判断,如果末尾是/就直接访问如果是app.json就打开详情页
if(arg1.path().right(1)=="/"){ if(arg1.path().right(1)=="/"){
ui->webView->setUrl(arg1); ui->webView->setUrl(arg1);
}else if(arg1.path().right(5)==".json"){ }else if(arg1.path().right(8)=="app.json"){
qDebug()<<arg1.toString(); load.cancel();//打开并发加载线程前关闭正在执行的线程
QDir dir; load.waitForFinished();
dir.cd("/tmp"); QPixmap pixmap_null;//一个空的图片指针,用来清空先有内容
dir.mkdir("deepin-community-store"); ui->label_appicon->setPixmap(pixmap_null);
QDir::setCurrent("/tmp/deepin-community-store"); ui->screen_1->setPixmap(pixmap_null);
QProcess get_json; ui->screen_2->setPixmap(pixmap_null);
get_json.start("wget -O app.json "+arg1.toString()); ui->screen_3->setPixmap(pixmap_null);
get_json.waitForFinished(); ui->screen_4->setPixmap(pixmap_null);
QFile app_json("app.json"); ui->screen_5->setPixmap(pixmap_null);
if(app_json.open(QIODevice::ReadOnly)){ //先隐藏详情页负责显示截图的label
ui->stackedWidget->setCurrentIndex(2); ui->screen_1->hide();
//成功得到json文件 ui->screen_2->hide();
qDebug()<<"成功得到"; ui->screen_3->hide();
QByteArray json_array=app_json.readAll(); ui->screen_4->hide();
urladdress=arg1.toString().left(arg1.toString().length()-8); ui->screen_5->hide();
QJsonObject json= QJsonDocument::fromJson(json_array).object(); ui->label_more->setText("");//清空详情介绍
appName = json["name"].toString(); ui->label_info->setText("");
url=urladdress + json["filename"].toString(); ui->label_appname->setText("");
qDebug()<<appName; ui->stackedWidget->setCurrentIndex(2);
ui->stackedWidget->setCurrentIndex(2); load = QtConcurrent::run([=](){
ui->label_appname->setText(appName); loadappinfo(arg1);
});
QtConcurrent::run([=](){
loadappinfo(json);
});
}
} }
} }
void Widget::loadappinfo(QUrl arg1)
{
ui->label_show->setText("正在加载,请稍候");
QProcess get_json;
QDir dir;
dir.cd("/tmp");
dir.mkdir("deepin-community-store");
QDir::setCurrent("/tmp/deepin-community-store");
get_json.start("wget -O app.json "+arg1.toString());
get_json.waitForFinished();
QFile app_json("app.json");
if(app_json.open(QIODevice::ReadOnly)){
// //成功得到json文件
QByteArray json_array=app_json.readAll();
urladdress=arg1.toString().left(arg1.toString().length()-8);
QJsonObject json= QJsonDocument::fromJson(json_array).object();
appName = json["name"].toString();
url=urladdress + json["filename"].toString();
qDebug()<<appName;
ui->label_appname->setText(appName);
system("rm -r *.png");
ui->label_show->show();
//图标加载
get_json.start("wget -O icon.png "+urladdress+"icon.png");
get_json.waitForFinished();
QPixmap appicon;
qDebug()<<appicon.load("icon.png");
ui->label_appicon->setPixmap(appicon);
//软件信息加载
QString info;
info="版本号:"+json["version"].toString()+"\n";
info+="作者:"+json["author"].toString()+"\n";
info+="官网:"+json["website"].toString()+"\n";
ui->label_info->setText(info);
ui->label_more->setText(json["more"].toString());
get_json.start("wget "+urladdress+"screen_1.png");
get_json.waitForFinished();
if(screen[0].load("screen_1.png")){
ui->screen_1->show();
ui->screen_1->setPixmap(screen[0]);
ui->screen_1->setScaledContents(true);
}
get_json.start("wget "+urladdress+"screen_2.png");
get_json.waitForFinished();
if(screen[1].load("screen_2.png")){
ui->screen_2->show();
ui->screen_2->setPixmap(screen[1]);
ui->screen_2->setScaledContents(true);
}
get_json.start("wget "+urladdress+"screen_3.png");
get_json.waitForFinished();
if(screen[2].load("screen_3.png")){
ui->screen_3->show();
ui->screen_3->setPixmap(screen[2]);
ui->screen_3->setScaledContents(true);
}
get_json.start("wget "+urladdress+"screen_4.png");
get_json.waitForFinished();
if(screen[3].load("screen_4.png")){
ui->screen_4->show();
ui->screen_4->setPixmap(screen[3]);
ui->screen_4->setScaledContents(true);
}
get_json.start("wget "+urladdress+"screen_5.png");
get_json.waitForFinished();
if(screen[4].load("screen_5.png")){
ui->screen_5->show();
ui->screen_5->setPixmap(screen[4]);
ui->screen_5->setScaledContents(true);
}
ui->label_show->setText("");
ui->label_show->hide();
}
}
void Widget::on_pushButton_clicked() void Widget::on_pushButton_clicked()
{ {
on_menu_btn_download_clicked(); on_menu_btn_download_clicked();
@ -124,70 +192,7 @@ void Widget::closeList(int)
} }
void Widget::loadappinfo(QJsonObject json)
{
ui->label_show->setText("正在加载,请稍候");
ui->label_show->show();
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);
QProcess get_json;
//图标加载
get_json.start("wget -O icon.png "+urladdress+"icon.png");
get_json.waitForFinished();
QPixmap appicon;
qDebug()<<appicon.load("icon.png");
ui->label_appicon->setPixmap(appicon);
//软件信息加载
QString info;
info="版本号:"+json["version"].toString()+"\n";
info+="作者:"+json["author"].toString()+"\n";
info+="官网:"+json["website"].toString()+"\n";
ui->label_info->setText(info);
ui->label_more->setText(json["more"].toString());
QPixmap screen[5];
get_json.start("wget -O screen_1.png "+urladdress+"screen_1.png");
get_json.waitForFinished();
if(screen[0].load("screen_1.png")){
ui->screen_1->show();
ui->screen_1->setPixmap(screen[0]);
ui->screen_1->setScaledContents(true);
}
get_json.start("wget -O screen_2.png "+urladdress+"screen_2.png");
get_json.waitForFinished();
if(screen[1].load("screen_2.png")){
ui->screen_2->show();
ui->screen_2->setPixmap(screen[1]);
ui->screen_2->setScaledContents(true);
}
get_json.start("wget -O screen_3.png "+urladdress+"screen_3.png");
get_json.waitForFinished();
if(screen[2].load("screen_3.png")){
ui->screen_3->show();
ui->screen_3->setPixmap(screen[2]);
ui->screen_3->setScaledContents(true);
}
get_json.start("wget -O screen_4.png "+urladdress+"screen_4.png");
get_json.waitForFinished();
if(screen[3].load("screen_4.png")){
ui->screen_4->show();
ui->screen_4->setPixmap(screen[3]);
ui->screen_4->setScaledContents(true);
}
get_json.start("wget -O screen_5.png "+urladdress+"screen_5.png");
get_json.waitForFinished();
if(screen[4].load("screen_5.png")){
ui->screen_5->show();
ui->screen_5->setPixmap(screen[4]);
ui->screen_5->setScaledContents(true);
}
ui->label_show->setText("");
ui->label_show->hide();
}
void Widget::httpReadyRead() void Widget::httpReadyRead()
{ {
if(file) if(file)

View File

@ -9,6 +9,7 @@
#include <downloadlist.h> #include <downloadlist.h>
#include <QJsonObject> #include <QJsonObject>
#include <QProcess> #include <QProcess>
#include <QFuture>
#define LIST_MAX 99 #define LIST_MAX 99
namespace Ui { namespace Ui {
class Widget; class Widget;
@ -26,7 +27,10 @@ public:
int allDownload=0; int allDownload=0;
int isdownload=false; int isdownload=false;
void closeList(int); void closeList(int);
void loadappinfo(QJsonObject); void loadappinfo(QUrl);
QPixmap screen[5];
QFuture<void> load;
private slots: private slots:
@ -84,7 +88,6 @@ private:
QString appName; QString appName;
QString urladdress; QString urladdress;
}; };
#endif // WIDGET_H #endif // WIDGET_H

View File

@ -131,7 +131,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>786</width> <width>786</width>
<height>945</height> <height>805</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_17"> <layout class="QVBoxLayout" name="verticalLayout_17">
@ -252,6 +252,11 @@
</item> </item>
<item row="1" column="3" rowspan="4"> <item row="1" column="3" rowspan="4">
<widget class="QLabel" name="label_info"> <widget class="QLabel" name="label_info">
<property name="font">
<font>
<kerning>true</kerning>
</font>
</property>
<property name="text"> <property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
@ -282,6 +287,37 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QWidget" name="widget_5" native="true">
<layout class="QVBoxLayout" name="verticalLayout_19">
<item>
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>详细介绍</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_more">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;详细介绍&lt;/p&gt;&lt;p&gt;由社区爱好者开发的软件商店&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QWidget" name="widget_4" native="true"> <widget class="QWidget" name="widget_4" native="true">
<property name="minimumSize"> <property name="minimumSize">
@ -432,37 +468,6 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QWidget" name="widget_5" native="true">
<layout class="QVBoxLayout" name="verticalLayout_19">
<item>
<widget class="QLabel" name="label_10">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>详细介绍</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_more">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;详细介绍&lt;/p&gt;&lt;p&gt;由社区爱好者开发的软件商店&lt;/p&gt;&lt;p&gt;1212121&lt;/p&gt;&lt;p&gt;12121212&lt;/p&gt;&lt;p&gt;121212&lt;/p&gt;&lt;p&gt;121212&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>