第一阶段初稿+修复部分内容

This commit is contained in:
Mike Solar
2023-07-31 19:06:37 +08:00
parent e3c650dbfd
commit 57aea93735
38 changed files with 659 additions and 103 deletions

View File

@ -14,11 +14,12 @@
#ifdef _DEBUG
#pragma comment(lib, "Qt5Svgd.lib")
#else
#pragma comment(lib, "QtSvg.lib")
#pragma comment(lib, "Qt5Svg.lib")
#endif
NavBar::NavBar(ConfigResponse *configResponse,QWidget *parent) :
NavBar::NavBar(ConfigResponse *configResponse, MainScreen *mainScreen,QWidget *parent) :
QWidget(parent), ui(new Ui::NavBar) {
ui->setupUi(this);
this->setAttribute(Qt::WA_DeleteOnClose);
buffer = new QByteArray;
if (configResponse->succeed&&configResponse->menus.empty()!=true) {
getLogoFromInternet(configResponse);
@ -37,6 +38,10 @@ NavBar::NavBar(ConfigResponse *configResponse,QWidget *parent) :
x += height();
buttons << myButton;
}
if (!buttonStructs.empty()) {
connect(this, &NavBar::firstUrl, mainScreen, &MainScreen::firstUrl);
emit firstUrl(buttonStructs[0].url);
}
}
NavBar::~NavBar() {
@ -76,7 +81,7 @@ void NavBar::resizeEvent(QResizeEvent *event) {
}
void NavBar::getLogoFromInternet(ConfigResponse *configResponse) {
qColor.setNamedColor(configResponse->basic.backgroud_color);
QUrl url_logo(QString(BASE_URL) + configResponse->basic.logo_url);
QUrl url_logo(configResponse->basic.logo_url);
QNetworkRequest *request_logo = new QNetworkRequest(url_logo);
manager = new QNetworkAccessManager;
reply = manager->get(*request_logo);
@ -84,24 +89,27 @@ void NavBar::getLogoFromInternet(ConfigResponse *configResponse) {
timer.setInterval(5000);
connect(reply, &QNetworkReply::finished, &eventLoop,&QEventLoop::quit);
connect(&timer, &QTimer::timeout,this, &NavBar::cancelDownload);
eventLoop.exec();
timer.stop();
buffer = new QByteArray;
delete request_logo;
if (downloadSuccess == true) {
*buffer = reply->readAll();
QSvgRenderer *render_logo = new QSvgRenderer(*buffer);
logo = new QImage(200, 200, QImage::Format_ARGB32);
logo = new QImage(400, 200, QImage::Format_ARGB32);
QPainter painter_logo(logo);
render_logo->render(&painter_logo);
buffer->clear();
for (auto button : configResponse->menus) {
QUrl url_image(QString(BASE_URL) + button.img);
QUrl url_image(button.img);
QNetworkRequest *request_image = new QNetworkRequest(url_image);
reply = manager->get(*request_image);
QTimer timer;
timer.setInterval(5000);
connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
connect(&timer, &QTimer::timeout, this, &NavBar::cancelDownload);
eventLoop.exec();
timer.stop();
if (!downloadSuccess) {
break;
}
@ -111,7 +119,7 @@ void NavBar::getLogoFromInternet(ConfigResponse *configResponse) {
QPainter painter_image(image);
render_image->render(&painter_image);
QUrl url_image_cover(QString(BASE_URL) + button.img_cover);
QUrl url_image_cover(button.img_cover);
QNetworkRequest *request_image_cover = new QNetworkRequest(url_image_cover);
reply = manager->get(*request_image_cover);
timer.setInterval(5000);