Health-Protection/Health-Protection-QT6/dialog5.cpp
JasonYANG170 aecdf18e71 to add
2024-04-18 01:31:49 +08:00

256 lines
7.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "dialog5.h"
#include "ui_dialog5.h"
#include <QSettings>
#include <QLabel>
#include <QSettings>
#include <QJsonDocument>
#include <QJsonObject>
#include <QMessageBox>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QMessageBox>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QMessageBox>
#include <QDir>
#include <QProcess>
QString ves3="V8.5";
Dialog5::Dialog5(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog5)
{
ui->setupUi(this);
QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\Qt01", QSettings::NativeFormat);
//判断 value 是否为空,不为空则输出
// if(reg->value("键名 001") != "")
// {
int chooese=reg->value("start").toInt();
//neirong=reg->value("Content").toString();
// }
//删除 QSettings
delete reg;
if(chooese==1){
ui->checkBox->setCheckState(Qt::Checked);
}
QSettings *reg2 = new QSettings("HKEY_CURRENT_USER\\Software\\Qt01", QSettings::NativeFormat);
//判断 value 是否为空,不为空则输出
// if(reg->value("键名 001") != "")
// {
int chooese2=reg2->value("startmini").toInt();
//neirong=reg->value("Content").toString();
// }
//删除 QSettings
delete reg2;
if(chooese2==1){
ui->checkBox_2->setCheckState(Qt::Checked);
}
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QUrl url("https://api.vvhan.com/api/qqsc?key=55800ce777767fcd63f59beaf0eee9ff");
QNetworkRequest request(url);
// Set unsafe SSL configuration
QSslConfiguration config = request.sslConfiguration();
config.setPeerVerifyMode(QSslSocket::VerifyNone);
request.setSslConfiguration(config);
QNetworkReply *reply = manager->get(request);
// Connect to the finished signal
connect(reply, &QNetworkReply::finished, [=]() {
if (reply->error() == QNetworkReply::NoError) {
// Read the JSON data
QByteArray data = reply->readAll();
// Display the JSON data in a message box
// QMessageBox::information(this, "JSON Data", QString(data));
QJsonDocument jsonDoc = QJsonDocument::fromJson(QString(data).toUtf8());
QJsonObject jsonObj = jsonDoc.object();
// 获取数据
QString info = jsonObj["content"].toString();
ui->textBrowser->setPlainText("当前版本V8.5\n\n公告:\n"+info);
} else {
// Display an error message
QMessageBox::warning(this, "Error", reply->errorString());
}
// Clean up
reply->deleteLater();
manager->deleteLater();
}
);
QNetworkAccessManager *manager2 = new QNetworkAccessManager(this);
QUrl url2("https://api.vvhan.com/api/qqsc?key=969c8d1f86b653696f929406faa0bbc0");
QNetworkRequest request2(url2);
// Set unsafe SSL configuration
QSslConfiguration config2 = request2.sslConfiguration();
config2.setPeerVerifyMode(QSslSocket::VerifyNone);
request2.setSslConfiguration(config2);
QNetworkReply *reply2 = manager2->get(request2);
// Connect to the finished signal
connect(reply2, &QNetworkReply::finished, [=]() {
if (reply2->error() == QNetworkReply::NoError) {
// Read the JSON data
QByteArray data2 = reply2->readAll();
// Display the JSON data in a message box
// QMessageBox::information(this, "JSON Data", QString(data));
QJsonDocument jsonDoc2 = QJsonDocument::fromJson(QString(data2).toUtf8());
QJsonObject jsonObj2 = jsonDoc2.object();
// 获取数据
QString info2 = jsonObj2["content"].toString();
if(info2!=ves3){
// QMessageBox::warning(this, "Error", "已发布新版本\""+info2+"\"。\n点击右上角发现新版本按钮下载最新版本。");
ui->pushButton->setText("发现新版本,点击跳转");
}else{
ui->pushButton->setText("暂无更新");
}
} else {
// Display an error message
QMessageBox::warning(this, "Error", reply2->errorString());
}
// Clean up
reply2->deleteLater();
manager2->deleteLater();
}
);
}
Dialog5::~Dialog5()
{
delete ui;
}
void Dialog5::on_checkBox_clicked(bool checked)
{
if(checked){
QSettings* settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
auto application_name = QApplication::applicationName();
auto path = settings->value(application_name).toString();
QString appPath = QApplication::applicationFilePath();
QString newPath = QDir::toNativeSeparators(appPath);
if (path != newPath) {
settings->setValue(application_name, newPath);
}
delete settings;
QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\Qt01", QSettings::NativeFormat);
//设定值有修改,没有创建。
reg->setValue("start",1);
//用完删除 QSettings
delete reg;
}else{
QSettings* settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
auto application_name = QApplication::applicationName();
settings->remove(application_name);
delete settings;
QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\Qt01", QSettings::NativeFormat);
//设定值有修改,没有创建。
reg->setValue("start",0);
//用完删除 QSettings
delete reg;
}
}
void Dialog5::on_checkBox_2_clicked(bool checked)
{
if(checked){
QSettings* settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
auto application_name = QApplication::applicationName();
settings->remove(application_name);
delete settings;
QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\Qt01", QSettings::NativeFormat);
//设定值有修改,没有创建。
reg->setValue("startmini",1);
//用完删除 QSettings
delete reg;
}else{
QSettings* settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
auto application_name = QApplication::applicationName();
settings->remove(application_name);
delete settings;
QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\Qt01", QSettings::NativeFormat);
//设定值有修改,没有创建。
reg->setValue("startmini",0);
//用完删除 QSettings
delete reg;
}
}
#include <QDesktopServices>
void Dialog5::on_pushButton_clicked()
{
QDesktopServices::openUrl(QUrl("https://github.com/JasonYANG170/Health-Protection/releases", QUrl::TolerantMode));
}
#include "dialog6.h"
#include "ui_dialog6.h"
void Dialog5::on_pushButton_2_clicked()
{
Dialog6 d;
d.exec();
}