From 8fafd7b3eeab0f2c5c7b99bee1c551767e8f373b Mon Sep 17 00:00:00 2001 From: Maicss Date: Wed, 5 Aug 2020 19:49:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B9=85=E4=BF=AE=E6=94=B9UI=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image_show.cpp | 8 - main.cpp | 6 +- mainwindow.cpp | 30 ++- mainwindow.h | 6 +- spark-store.pro | 3 +- widget.cpp | 111 ++++++-- widget.h | 15 +- widget.ui | 675 ++++++++++++++++++++++++++++++++++-------------- 8 files changed, 621 insertions(+), 233 deletions(-) diff --git a/image_show.cpp b/image_show.cpp index c74ef25..19182fe 100644 --- a/image_show.cpp +++ b/image_show.cpp @@ -32,14 +32,6 @@ void image_show::setImage(QPixmap image) }else { m_image=image; } - //防止图片尺寸过大导致窗口覆盖整个屏幕 -// if(screen0.width()>1024 || screen0.height()>768){ -// re_screen1=screen0.scaled(QSize(1024,768),Qt::KeepAspectRatio,Qt::SmoothTransformation); -// }else { -// re_screen1=screen0; - -// } -// m_image=QPixmap::fromImage(re_screen1); m_label->setPixmap(QPixmap::fromImage(re_screen0)); } diff --git a/main.cpp b/main.cpp index fff91c2..8b9c901 100644 --- a/main.cpp +++ b/main.cpp @@ -1,7 +1,7 @@ -#include "mainwindow.h" #include #include //Dtk::Widget::moveToCenter(&w); 要调用它,就得引用DWidgetUtil #include +#include DWIDGET_USE_NAMESPACE int main(int argc, char *argv[]) { @@ -10,14 +10,14 @@ int main(int argc, char *argv[]) a.setAttribute(Qt::AA_UseHighDpiPixmaps); a.loadTranslator(); a.setOrganizationName("spark-union"); - a.setApplicationVersion(DApplication::buildVersion("1.0-beta5.6")); + a.setApplicationVersion(DApplication::buildVersion("1.0-beta6.1")); a.setApplicationAcknowledgementPage("https://gitee.com/deepin-community-store/spark-store"); a.setProductIcon(QIcon::fromTheme("spark-store")); //设置Logo a.setProductName("Spark应用商店"); a.setApplicationDescription("深度社区驱动的一款为deepin打造的第三方商店"); a.setApplicationName("Spark应用商店"); //只有在这儿修改窗口标题才有效 - MainWindow w; + Widget w; QDesktopWidget *s=DApplication::desktop(); int d_w=s->width(); int d_h=s->height(); diff --git a/mainwindow.cpp b/mainwindow.cpp index 227a015..2e8cb54 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -7,20 +7,30 @@ #include #include #include +#include DWIDGET_USE_NAMESPACE -MainWindow::MainWindow(QWidget *parent) - : DMainWindow(parent) +MainWindow::MainWindow(DBlurEffectWidget *parent) + : DBlurEffectWidget(parent) { w = new Widget; + QVBoxLayout *layout=new QVBoxLayout; +// layout->addWidget(titlebar); +// titlebar->show(); + titlebar=w->getTitlebar(); + layout->addWidget(w); + w->show(); + setLayout(layout); + layout->setMargin(0); + layout->setSpacing(0); resize(w->size()); //设置窗口大小 - setCentralWidget(w); +// setCentralWidget(w); //添加搜索框 - DMainWindow::titlebar()->addWidget(searchEdit); - DMainWindow::titlebar()->setIcon(QIcon::fromTheme("spark-store")); - DMainWindow::titlebar()->setTitle("星火应用商店"); + titlebar->addWidget(searchEdit); +// titlebar->setIcon(QIcon::fromTheme("spark-store")); + titlebar->setTitle("星火应用商店"); searchEdit->setPlaceholderText("搜索或打开链接"); searchEdit->setMaximumWidth(300); @@ -28,13 +38,10 @@ MainWindow::MainWindow(QWidget *parent) QAction *setting=new QAction("设置"); QMenu *menu=new QMenu; menu->addAction(setting); - DMainWindow::titlebar()->setMenu(menu); + titlebar->setMenu(menu); -// connect(DGuiApplicationHelper::instance(),&DGuiApplicationHelper::instance()->applicationPalette().highlight().color()::) - - //链接信号和槽 //设置活动颜色和明暗模式 @@ -49,6 +56,8 @@ MainWindow::MainWindow(QWidget *parent) w->setTheme(false,main_color); } }); + + //设置菜单 connect(setting,&QAction::triggered,w,&Widget::opensetting); //搜索事件 @@ -64,6 +73,7 @@ MainWindow::MainWindow(QWidget *parent) + } MainWindow::~MainWindow() diff --git a/mainwindow.h b/mainwindow.h index 626c0d7..cb5d479 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -9,16 +9,16 @@ #include DWIDGET_USE_NAMESPACE -class MainWindow : public DMainWindow +class MainWindow : public DBlurEffectWidget { Q_OBJECT public: - MainWindow(QWidget *parent = nullptr); + MainWindow(DBlurEffectWidget *parent = nullptr); ~MainWindow(); DSearchEdit *searchEdit=new DSearchEdit; - DTitlebar *titlebar=new DTitlebar; + DTitlebar *titlebar; void openUrl(QUrl); private: diff --git a/spark-store.pro b/spark-store.pro index be8bcf4..ac1c9e6 100644 --- a/spark-store.pro +++ b/spark-store.pro @@ -24,13 +24,12 @@ DEFINES += QT_DEPRECATED_WARNINGS SOURCES += main.cpp\ - mainwindow.cpp \ widget.cpp \ downloadlist.cpp \ image_show.cpp \ big_image.cpp -HEADERS += mainwindow.h \ +HEADERS += \ widget.h \ downloadlist.h \ image_show.h \ diff --git a/widget.cpp b/widget.cpp index e354d7b..051c5a7 100644 --- a/widget.cpp +++ b/widget.cpp @@ -25,11 +25,12 @@ #include "image_show.h" #include #include +#include #include DWIDGET_USE_NAMESPACE -Widget::Widget(QWidget *parent) : - QWidget(parent), +Widget::Widget(DBlurEffectWidget *parent) : + DBlurEffectWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); @@ -51,6 +52,30 @@ Widget::Widget(QWidget *parent) : connect(ui->menu_theme,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(11);}); connect(ui->menu_other,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(12);}); connect(ui->menu_download,&QPushButton::clicked,[=](){Widget::chooseLeftMenu(13);}); +// connect((ui->titlebar)) + + + //搜索事件 + connect(searchEdit,&DSearchEdit::editingFinished,this,[=](){ + QString searchtext=searchEdit->text(); + if(searchtext!=""){ + qDebug()<text(); + searchApp(searchtext); + } + searchEdit->clearEdit(); + + }); + connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [=](DGuiApplicationHelper::ColorType themeType) { + QColor main_color; + main_color=DGuiApplicationHelper::instance()->applicationPalette().highlight().color(); + if(themeType==DGuiApplicationHelper::DarkType){ + qDebug()<<"Dark"; + setTheme(true,main_color); + }else { + qDebug()<<"White"; + setTheme(false,main_color); + } + }); //计算显示下载速度 download_speed.setInterval(1000); @@ -80,29 +105,46 @@ Widget::Widget(QWidget *parent) : Widget::~Widget() { delete ui; + qDebug()<<"exit"; + DApplication::quit(); } void Widget::initUI() { //ui初始化 - + setMaskAlpha(230); + ui->webfoot->setFixedHeight(0); ui->stackedWidget->setCurrentIndex(0); ui->listWidget->hide(); ui->label_setting1->hide(); ui->pushButton_uninstall->hide(); ui->line1_widget->setStyleSheet("background-color:#808080"); - ui->line2_widget->setStyleSheet("background-color:#808080"); + ui->icon->setPixmap(QIcon::fromTheme("spark-store").pixmap(36,36)); + //初始化分界线 QGraphicsOpacityEffect *opacityEffect_1=new QGraphicsOpacityEffect; - QGraphicsOpacityEffect *opacityEffect_2=new QGraphicsOpacityEffect; opacityEffect_1->setOpacity(0.1); - opacityEffect_2->setOpacity(0.1); ui->line1_widget->setGraphicsEffect(opacityEffect_1); - ui->line2_widget->setGraphicsEffect(opacityEffect_2); + //搜索框 + titlebar=ui->titlebar; + titlebar->addWidget(searchEdit); +// titlebar->setIcon(QIcon::fromTheme("spark-store")); + titlebar->setTitle("星火应用商店"); + searchEdit->setPlaceholderText("搜索或打开链接"); + searchEdit->setMaximumWidth(300); + titlebar->setSeparatorVisible(true); +// titlebar->setAutoHideOnFullscreen(true); + + //添加菜单项 + QAction *setting=new QAction("设置"); + QMenu *menu=new QMenu; + menu->addAction(setting); + titlebar->setMenu(menu); + connect(setting,&QAction::triggered,this,&Widget::opensetting); //初始化菜单数组 left_list[0]=ui->menu_main; @@ -163,8 +205,6 @@ void Widget::initConfig() serverUrl="http://store.jerrywang.top/";//默认URL } configCanSave=true; //防止出发保存配置信号 -// ui-> -// menuUrl[0]="https://mp.weixin.qq.com/s/1OmCgJ13yVDSRebdgtW9fg"; menuUrl[0]=serverUrl + "store/#/"; menuUrl[1]=serverUrl + "store/#/network"; menuUrl[2]=serverUrl + "store/#/relations"; @@ -183,7 +223,7 @@ void Widget::initConfig() //web控件初始化 ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); //用来激活接受linkClicked信号 ui->webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled,true); - + ui->webfoot->hide(); //初始化首页 ui->webView->setUrl(menuUrl[0]); @@ -213,20 +253,33 @@ void Widget::setTheme(bool isDark,QColor color) if(isDark){ //黑色模式 themeIsDark=true; - ui->widget_menuList->setStyleSheet("background-color:#282828"); ui->webView->setStyleSheet("background-color:#282828"); ui->btn_openDir->setStyleSheet("color:#8B91A1;background-color:#2E2F30;border:0px"); -// ui->webView->page()->; + ui->webfoot->setStyleSheet("background-color:#252525"); + ui->label->setStyleSheet("background-color:#252525"); + ui->scrollArea->setStyleSheet("#scrollArea{background-color:#252525}"); + ui->label_show->setStyleSheet("background-color:#252525"); }else { //亮色模式 themeIsDark=false; - ui->widget_menuList->setStyleSheet("background-color:#FFFFFF"); ui->webView->setStyleSheet("background-color:#FFFFFF"); + ui->webfoot->setStyleSheet("background-color:#FFFFFF"); ui->btn_openDir->setStyleSheet("color:#505050;background-color:#FBFBFB;border:0px"); + ui->label->setStyleSheet("background-color:#FFFFFF"); + ui->scrollArea->setStyleSheet("#scrollArea{background-color:#F8F8F8}"); + ui->label_show->setStyleSheet("background-color:#F8F8F8"); } main_color=color; // left_list[nowMenu]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px"); - chooseLeftMenu(nowMenu); + if(ui->stackedWidget->currentIndex()==0){ + chooseLeftMenu(nowMenu); + } + +} + +DTitlebar* Widget::getTitlebar() +{ + return ui->titlebar; } void Widget::on_webView_loadStarted() @@ -276,10 +329,12 @@ void Widget::chooseLeftMenu(int index) { nowMenu=index; +// setfoot(); +// updatefoot(); for (int i=0;i<14;i++) { left_list[i]->setStyleSheet("border:0px"); left_list[i]->setFont(QFont("",11)); - left_list[i]->setMinimumHeight(30); + left_list[i]->setFixedHeight(38); } left_list[index]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px"); if(index<=12){ @@ -302,6 +357,17 @@ void Widget::chooseLeftMenu(int index) } } + +void Widget::setfoot(int h) +{ + foot=h; +} + +void Widget::updatefoot() +{ + int allh=ui->stackedWidget->height(); + ui->webfoot->setFixedHeight(allh-foot); +} void Widget::loadappinfo(QUrl arg1) { //置UI状态 @@ -534,8 +600,21 @@ void Widget::httpFinished() //完成下载 void Widget::on_pushButton_return_clicked() { - ui->webView->setUrl(menuUrl[nowMenu]); ui->stackedWidget->setCurrentIndex(0); + + if(themeIsDark){ + QString darkurl=menuUrl[nowMenu].toString(); + QStringList tmp=darkurl.split("/"); + darkurl.clear(); + for (int i=0;iwebView->setUrl(darkurl); + qDebug()<webView->setUrl(menuUrl[nowMenu]); + } } void Widget::on_comboBox_server_currentIndexChanged(const QString &arg1) diff --git a/widget.h b/widget.h index c5948c9..de3ad85 100644 --- a/widget.h +++ b/widget.h @@ -17,6 +17,8 @@ #include #include #include +#include +#include #define LIST_MAX 99 //一次最多下载数量 #define TMP_PATH "/tmp/spark-store" @@ -27,12 +29,12 @@ class Widget; -class Widget : public QWidget +class Widget : public DBlurEffectWidget { Q_OBJECT public: - explicit Widget(QWidget *parent = nullptr); + explicit Widget(DBlurEffectWidget *parent = nullptr); ~Widget(); void startRequest(QUrl url); void searchApp(QString); @@ -42,6 +44,7 @@ public: void opensetting(); //打开设置页面 void openUrl(QUrl); void setTheme(bool,QColor); + DTitlebar* getTitlebar(); private slots: @@ -80,11 +83,16 @@ public: QString appweb; bool themeIsDark; + + private: void initUI(); void initConfig(); void loadappinfo(QUrl); void chooseLeftMenu(int index); + void setfoot(int); + void updatefoot(); + quint64 dirFileSize(const QString &path); private: @@ -104,6 +112,9 @@ private: QTimer download_speed; QString type_name; QColor main_color; + int foot; + DSearchEdit *searchEdit=new DSearchEdit; + DTitlebar *titlebar; }; diff --git a/widget.ui b/widget.ui index 1a309fb..f484983 100644 --- a/widget.ui +++ b/widget.ui @@ -29,7 +29,213 @@ 0 - + + + + + 150 + 0 + + + + + 150 + 16777215 + + + + + 11 + + + + background-color:#FFFFFF + + + + + + + 2 + + + 5 + + + 5 + + + + + + 0 + 36 + + + + + 16777215 + 36 + + + + icon + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + 商店首页 + + + + + + + 网络应用 + + + + + + + 社交沟通 + + + + + + + 音乐欣赏 + + + + + + + 视频播放 + + + + + + + 图形图像 + + + + + + + 游戏娱乐 + + + + + + + 办公学习 + + + + + + + 阅读翻译 + + + + + + + 编程开发 + + + + + + + 系统工具 + + + + + + + 主题美化 + + + + + + + 其他应用 + + + + + + + + 0 + 1 + + + + + 16777215 + 4 + + + + background-color:#808080 + + + + + + + 下载列表 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + @@ -38,10 +244,13 @@ 0 - 1 + 2 + + 0 + 0 @@ -56,6 +265,259 @@ + + + + + + + 65 + 77 + 104 + + + + + + + 3 + 3 + 3 + + + + + + + 46 + 46 + 46 + + + + + + + 65 + 77 + 104 + + + + + + + 65 + 77 + 104 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 28 + 28 + 28 + + + + + + + 0 + 0 + 0 + + + + + + + + + 138 + 145 + 161 + + + + + + + 3 + 3 + 3 + + + + + + + 46 + 46 + 46 + + + + + + + 138 + 145 + 161 + + + + + + + 138 + 145 + 161 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 28 + 28 + 28 + + + + + + + 0 + 0 + 0 + + + + + + + + + 46 + 46 + 46 + + + + + + + 3 + 3 + 3 + + + + + + + 46 + 46 + 46 + + + + + + + 46 + 46 + 46 + + + + + + + 46 + 46 + 46 + + + + + + + 0 + 0 + 0 + + + + + + + 0 + 0 + 0 + + + + + + + 28 + 28 + 28 + + + + + + + 0 + 0 + 0 + + + + + + http://0.0.0.1/ @@ -63,6 +525,9 @@ + + + @@ -99,6 +564,9 @@ + + 0 + 当前下载列表为空 @@ -127,6 +595,9 @@ + + 0 + 0 @@ -155,7 +626,7 @@ 0 0 - 891 + 901 864 @@ -461,7 +932,7 @@ 0 0 - 857 + 867 325 @@ -588,7 +1059,7 @@ 0 0 - 891 + 901 786 @@ -862,194 +1333,14 @@ - - + + - 1 - 0 + 0 + 20 - - - 4 - 16777215 - - - - background-color:#808080 - - - - - - - - 150 - 0 - - - - - 150 - 16777215 - - - - - 11 - - - - background-color:#FFFFFF - - - - - - - 2 - - - 5 - - - 5 - - - - - - - - 商店首页 - - - - - - - 网络应用 - - - - - - - 社交沟通 - - - - - - - 音乐欣赏 - - - - - - - 视频播放 - - - - - - - 图形图像 - - - - - - - 游戏娱乐 - - - - - - - 办公学习 - - - - - - - 阅读翻译 - - - - - - - 编程开发 - - - - - - - 系统工具 - - - - - - - 主题美化 - - - - - - - 其他应用 - - - - - - - - 0 - 1 - - - - - 16777215 - 4 - - - - background-color:#808080 - - - - - - - 下载列表 - - - - - - - Qt::Vertical - - - - 20 - 219 - - - - - @@ -1066,6 +1357,12 @@
image_show.h
1 + + DTitlebar + QWidget +
dtitlebar.h
+ 1 +