This commit is contained in:
Maicss 2020-06-17 16:52:52 +08:00
parent 7706414ff9
commit 873c52e602
12 changed files with 1749 additions and 29 deletions

@ -3,35 +3,6 @@
#### 介绍
deepin社区商店由社区维护
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

@ -0,0 +1,43 @@
#-------------------------------------------------
#
# Project created by QtCreator 2019-06-30T12:53:03
#
#-------------------------------------------------
QT += core gui webkitwidgets network concurrent
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = DtkDemo
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += main.cpp\
mainwindow.cpp \
widget.cpp \
downloadlist.cpp
HEADERS += mainwindow.h \
widget.h \
downloadlist.h \
urls.h
CONFIG += link_pkgconfig
PKGCONFIG += dtkwidget
CONFIG += c++11
FORMS += \
widget.ui \
downloadlist.ui

56
downloadlist.cpp Normal file

@ -0,0 +1,56 @@
#include "downloadlist.h"
#include "ui_downloadlist.h"
downloadlist::downloadlist(QWidget *parent) :
QWidget(parent),
ui(new Ui::downloadlist)
{
ui->setupUi(this);
ui->pushButton->setEnabled(false);
ui->progressBar->setValue(0);
}
downloadlist::~downloadlist()
{
delete ui;
}
void downloadlist::setValue(long long value)
{
ui->progressBar->setValue(value);
}
void downloadlist::setMax(long long max)
{
ui->progressBar->setMaximum(max);
}
void downloadlist::setName(QString name)
{
ui->label->setText(name);
}
QString downloadlist::getName()
{
return ui->label->text();
}
void downloadlist::readyInstall()
{
ui->progressBar->hide();
ui->pushButton->setEnabled(true);
}
void downloadlist::choose(bool isChoosed)
{
if(isChoosed){
ui->label->setStyleSheet("color:#FFFFFF");
}else {
ui->label->setStyleSheet("color:#000000");
}
}
void downloadlist::on_pushButton_clicked()
{
system("deepin-deb-installer "+ui->label->text().toUtf8()+"&");
}

33
downloadlist.h Normal file

@ -0,0 +1,33 @@
#ifndef DOWNLOADLIST_H
#define DOWNLOADLIST_H
#include <QWidget>
namespace Ui {
class downloadlist;
}
class downloadlist : public QWidget
{
Q_OBJECT
public:
explicit downloadlist(QWidget *parent = nullptr);
~downloadlist();
void setValue(long long);
void setMax(long long);
void setName(QString);
QString getName();
void readyInstall();
void choose(bool);
bool free;
public: signals:
void closeDownload();
private slots:
void on_pushButton_clicked();
private:
Ui::downloadlist *ui;
};
#endif // DOWNLOADLIST_H

124
downloadlist.ui Normal file

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>downloadlist</class>
<widget class="QWidget" name="downloadlist">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>617</width>
<height>52</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="4">
<widget class="QPushButton" name="pushButton">
<property name="minimumSize">
<size>
<width>80</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>80</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>安装</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>13</pointsize>
</font>
</property>
<property name="text">
<string>名称</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QProgressBar" name="progressBar">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>350</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>10</height>
</size>
</property>
<property name="value">
<number>24</number>
</property>
<property name="textVisible">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

28
main.cpp Normal file

@ -0,0 +1,28 @@
#include "mainwindow.h"
#include <DApplication>
#include <DWidgetUtil> //Dtk::Widget::moveToCenter(&w); 要调用它就得引用DWidgetUtil
DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
DApplication::loadDXcbPlugin(); //让bar处在标题栏中
DApplication a(argc, argv);
a.setAttribute(Qt::AA_UseHighDpiPixmaps);
a.loadTranslator();
a.setOrganizationName("deepin");
a.setApplicationVersion(DApplication::buildVersion("1.0"));
//a.setApplicationAcknowledgementPage("https://你的网站");
//a.setProductIcon(QIcon(":/images/icon.svg")); //设置Logo
//a.setProductName("DtkDemo");
a.setApplicationName("社区应用商店"); //只有在这儿修改窗口标题才有效
MainWindow w;
w.show();
//让打开时界面显示在正中
Dtk::Widget::moveToCenter(&w);
return a.exec();
}

20
mainwindow.cpp Normal file

@ -0,0 +1,20 @@
#include "mainwindow.h"
#include <DMainWindow>
DWIDGET_USE_NAMESPACE
MainWindow::MainWindow(QWidget *parent)
: DMainWindow(parent)
{
w = new Widget;
resize(w->size()); //设置窗口大小
setMinimumSize(900,700);
setCentralWidget(w);
}
MainWindow::~MainWindow()
{
}

21
mainwindow.h Normal file

@ -0,0 +1,21 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <DMainWindow>
#include "widget.h"
DWIDGET_USE_NAMESPACE
class MainWindow : public DMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Widget *w;
};
#endif // MAINWINDOW_H

15
urls.h Normal file

@ -0,0 +1,15 @@
#ifndef URLS_H
#define URLS_H
#define URL_MAIN "https://dstore-appstore.deepin.cn/china/index/"
#define URL_NETWORK "https://mirrors.huaweicloud.com/deepin/"
#define URL_CHAT "https://mirrors.huaweicloud.com/deepin/"
#define URL_MUSIC "https://mirrors.huaweicloud.com/deepin/"
#define URL_VIDEO "https://mirrors.huaweicloud.com/deepin/"
#define URL_PHOTO "https://mirrors.huaweicloud.com/deepin/"
#define URL_GAME "https://mirrors.huaweicloud.com/deepin/"
#define URL_OFFICE "https://mirrors.huaweicloud.com/deepin/"
#define URL_READ "https://mirrors.huaweicloud.com/deepin/"
#define URL_DEV "https://mirrors.huaweicloud.com/deepin/"
#define URL_SYSTEM "https://mirrors.huaweicloud.com/deepin/"
#define URL_OTHER "https://mirrors.huaweicloud.com/deepin/"
#endif // URLS_H

550
widget.cpp Normal file

@ -0,0 +1,550 @@
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QFileInfo>
#include <QNetworkReply>
#include <QNetworkAccessManager>
#include <QtConcurrent> //并发
#include <QVBoxLayout>
#include <QGridLayout>
#include <QListWidgetItem>
#include "urls.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
ui->webView->setUrl(QUrl(URL_MAIN));
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
ui->stackedWidget->setCurrentIndex(0);
ui->listWidget->hide();
manager = new QNetworkAccessManager(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_webView_linkClicked(const QUrl &arg1)
{
if(arg1.path().right(1)=="/"){
ui->webView->setUrl(arg1);
}else if(arg1.path().right(4)==".deb"){
ui->stackedWidget->setCurrentIndex(1);
on_menu_btn_download_clicked();
allDownload+=1;
qDebug()<<arg1;
url= arg1;
QFileInfo info(url.path());
QString fileName(info.fileName()); //获取文件名
if(fileName.isEmpty())
{
fileName = "index.html";
}
download_list[allDownload-1].setParent(ui->listWidget);
QListWidgetItem *item=new QListWidgetItem(ui->listWidget);
item->setSizeHint(download_list[allDownload-1].size());
ui->listWidget->setItemWidget(item,&download_list[allDownload-1]);
urList.append(url);
download_list[allDownload-1].setName(fileName);
if(!isBusy){
file = new QFile(fileName);
if(!file->open(QIODevice::WriteOnly))
{
qDebug()<<"file open error";
delete file;
file = 0;
return ;
}
nowDownload+=1;
startRequest(urList.at(nowDownload-1)); //进行链接请求
}
}
}
void Widget::startRequest(QUrl url)
{
ui->listWidget->show();
ui->label->hide();
isBusy=true;
isdownload=true;
reply = manager->get(QNetworkRequest(url));
connect(reply,SIGNAL(finished()),this,SLOT(httpFinished()));
connect(reply,SIGNAL(readyRead()),this,SLOT(httpReadyRead()));
connect(reply,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(updateDataReadProgress(qint64,qint64)));
}
void Widget::closeList(int)
{
}
void Widget::httpReadyRead()
{
if(file)
{
file->write(reply->readAll());
}
}
void Widget::updateDataReadProgress(qint64 bytesRead, qint64 totalBytes)
{
download_list[nowDownload-1].setMax(1000); //最大值
download_list[nowDownload-1].setValue((bytesRead*1000)/totalBytes); //当前值
}
void Widget::httpFinished() //完成下载
{
file->flush();
file->close();
reply->deleteLater();
reply = 0;
delete file;
file = 0;
isdownload=false;
isBusy=false;
download_list[nowDownload-1].readyInstall();
qDebug()<<nowDownload;
qDebug()<<allDownload;
if(nowDownload<allDownload){
QString fileName=download_list[nowDownload].getName();
file = new QFile(fileName);
if(!file->open(QIODevice::WriteOnly))
{
qDebug()<<"file open error";
delete file;
file = 0;
return ;
}
nowDownload+=1;
startRequest(urList.at(nowDownload-1));
}
}
//菜单切换逻辑
void Widget::on_menu_btn_main_clicked() //主页
{
ui->menu_btn_main->setStyleSheet("color:#FFFFFF");
ui->menu_bg_main->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_MAIN));
}
void Widget::on_menu_btn_network_clicked() //网络应用
{
ui->menu_btn_network->setStyleSheet("color:#FFFFFF");
ui->menu_bg_network->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_NETWORK));
}
void Widget::on_menu_btn_chat_clicked()//社交沟通
{
ui->menu_btn_chat->setStyleSheet("color:#FFFFFF");
ui->menu_bg_chat->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_CHAT));
}
void Widget::on_menu_btn_music_clicked()//音乐欣赏
{
ui->menu_btn_music->setStyleSheet("color:#FFFFFF");
ui->menu_bg_music->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_MUSIC));
}
void Widget::on_menu_btn_video_clicked()//视频播放
{
ui->menu_btn_video->setStyleSheet("color:#FFFFFF");
ui->menu_bg_video->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_VIDEO));
}
void Widget::on_menu_btn_photo_clicked()//图形图像
{
ui->menu_btn_photo->setStyleSheet("color:#FFFFFF");
ui->menu_bg_photo->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_PHOTO));
}
void Widget::on_menu_btn_game_clicked()//游戏娱乐
{
ui->menu_btn_game->setStyleSheet("color:#FFFFFF");
ui->menu_bg_game->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_GAME));
}
void Widget::on_menu_btn_office_clicked()//办公学习
{
ui->menu_btn_office->setStyleSheet("color:#FFFFFF");
ui->menu_bg_office->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_OFFICE));
}
void Widget::on_menu_btn_read_clicked()//阅读翻译
{
ui->menu_btn_read->setStyleSheet("color:#FFFFFF");
ui->menu_bg_read->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_READ));
}
void Widget::on_menu_btn_dev_clicked()//编程开发
{
ui->menu_btn_dev->setStyleSheet("color:#FFFFFF");
ui->menu_bg_dev->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_DEV));
}
void Widget::on_menu_btn_system_clicked()//系统管理
{
ui->menu_btn_system->setStyleSheet("color:#FFFFFF");
ui->menu_bg_system->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_SYSTEM));
}
void Widget::on_menu_btn_other_clicked()//其他软件
{
ui->menu_btn_other->setStyleSheet("color:#FFFFFF");
ui->menu_bg_other->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_download->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_download->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(0);
ui->webView->setUrl(QUrl(URL_OTHER));
}
void Widget::on_menu_btn_download_clicked()
{
ui->menu_btn_download->setStyleSheet("color:#FFFFFF");
ui->menu_bg_download->setStyleSheet("background-color:#0081FF;border-radius:8");//蓝色
//取消其他样式
ui->menu_bg_dev->setStyleSheet("");
ui->menu_bg_chat->setStyleSheet("");
ui->menu_bg_game->setStyleSheet("");
ui->menu_bg_read->setStyleSheet("");
ui->menu_bg_music->setStyleSheet("");
ui->menu_bg_other->setStyleSheet("");
ui->menu_bg_photo->setStyleSheet("");
ui->menu_bg_video->setStyleSheet("");
ui->menu_bg_office->setStyleSheet("");
ui->menu_bg_system->setStyleSheet("");
ui->menu_bg_main->setStyleSheet("");
ui->menu_bg_network->setStyleSheet("");
ui->menu_btn_dev->setStyleSheet("");
ui->menu_btn_chat->setStyleSheet("");
ui->menu_btn_game->setStyleSheet("");
ui->menu_btn_read->setStyleSheet("");
ui->menu_btn_music->setStyleSheet("");
ui->menu_btn_other->setStyleSheet("");
ui->menu_btn_photo->setStyleSheet("");
ui->menu_btn_video->setStyleSheet("");
ui->menu_btn_office->setStyleSheet("");
ui->menu_btn_system->setStyleSheet("");
ui->menu_btn_main->setStyleSheet("");
ui->menu_btn_network->setStyleSheet("");
ui->stackedWidget->setCurrentIndex(1);
}
void Widget::on_listWidget_currentRowChanged(int currentRow)
{
qDebug()<<currentRow;
for (int i=0;i<allDownload;i++) {
download_list[i].choose(false);
}
download_list[currentRow].choose(true);
}

72
widget.h Normal file

@ -0,0 +1,72 @@
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QUrl>
#include <QFile>
#include <QNetworkReply>
#include <QNetworkAccessManager>
#include <downloadlist.h>
#define LIST_MAX 99
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void startRequest(QUrl url);
int nowDownload=0;
int allDownload=0;
int isdownload=false;
void closeList(int);
private slots:
void on_webView_linkClicked(const QUrl &arg1);
void httpFinished();
void httpReadyRead();
void updateDataReadProgress(qint64,qint64);
void on_menu_btn_main_clicked();
void on_menu_btn_network_clicked();
void on_menu_btn_download_clicked();
void on_menu_btn_chat_clicked();
void on_menu_btn_music_clicked();
void on_menu_btn_video_clicked();
void on_menu_btn_photo_clicked();
void on_menu_btn_game_clicked();
void on_menu_btn_office_clicked();
void on_menu_btn_read_clicked();
void on_menu_btn_dev_clicked();
void on_menu_btn_system_clicked();
void on_menu_btn_other_clicked();
void on_listWidget_currentRowChanged(int currentRow);
private:
QUrl url;
bool isBusy=false;
downloadlist download_list[LIST_MAX];
Ui::Widget *ui;
QNetworkAccessManager *manager;
QNetworkReply *reply;
QList<QUrl> urList;
QFile *file;
};
#endif // WIDGET_H

787
widget.ui Normal file

@ -0,0 +1,787 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>881</width>
<height>581</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget" native="true">
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>150</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="accessibleDescription">
<string>background-color:#FFFFFF</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="menu_bg_main" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color:#0081FF;border-radius:8</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_main">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">color:#FFFFFF</string>
</property>
<property name="text">
<string>首页精选</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_network" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_network">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>网络应用</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_chat" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_chat">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>社交沟通</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_music" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_music">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>音乐欣赏</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_video" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_video">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>视频播放</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_photo" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_photo">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>图形图像</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_game" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_game">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>游戏娱乐</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_office" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_office">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>办公学习</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_read" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_read">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>阅读翻译</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_dev" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_13">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_dev">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>编程开发</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_system" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_system">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>系统管理</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_other" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_15">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_other">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>其他应用</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget_2" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>1</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color:#E0E0E1</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="menu_bg_download" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="menu_btn_download">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>下载列表</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>219</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWebView" name="webView">
<property name="url">
<url>
<string>https://bbs.deepin.org/</string>
</url>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color:#FFFFFF</string>
</property>
<property name="text">
<string>当前下载列表为空</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QListWidget" name="listWidget">
<property name="lineWidth">
<number>0</number>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header>QtWebKitWidgets/QWebView</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>