修复 截图放大后可能会溢出屏幕

This commit is contained in:
Maicss 2020-07-29 20:51:18 +08:00
parent 46c1609d58
commit ec1c91f021
3 changed files with 27 additions and 13 deletions

@ -9,10 +9,10 @@ big_image::big_image(DBlurEffectWidget *parent) : DBlurEffectWidget(parent)
layout->addWidget(m_image);
layout->setMargin(0);
m_image->setAlignment(Qt::AlignCenter);
m_image->setMaximumSize(1360,768);
// m_image->setMaximumSize(1360,768);
setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);//设置图片对话框总在最前
setRadius(0);
setMaskAlpha(100);
setMaskAlpha(60);
setMaskColor(QColor("#000000"));

@ -5,6 +5,8 @@
#include <DDialog>
#include <DBlurEffectWidget>
#include <DWidgetUtil>
#include <DApplication>
#include <QDesktopWidget>
DWIDGET_USE_NAMESPACE
image_show::image_show(QWidget *parent) : QWidget(parent)
{
@ -19,18 +21,26 @@ void image_show::setImage(QPixmap image)
QImage screen0;
screen0=image.toImage();
QPainter painter(&screen0);
// QPainter painter(&screen0);
QImage re_screen1;
QImage re_screen0=screen0.scaled(QSize(400,300),Qt::KeepAspectRatio,Qt::SmoothTransformation);
//防止图片尺寸过大导致窗口覆盖整个屏幕
if(screen0.width()>1024 || screen0.height()>768){
re_screen1=screen0.scaled(QSize(1024,768),Qt::KeepAspectRatio,Qt::SmoothTransformation);
int desktop_w=DApplication::desktop()->width();
int desktop_h=DApplication::desktop()->height();
if(screen0.width()>(desktop_w-20) || screen0.height()>(desktop_h-20)){
re_screen1=screen0.scaled(QSize(desktop_w-20,desktop_h-20),Qt::KeepAspectRatio,Qt::SmoothTransformation);
m_image=QPixmap::fromImage(re_screen1);
}else {
re_screen1=screen0;
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_image=QPixmap::fromImage(re_screen1);
m_label->setPixmap(QPixmap::fromImage(re_screen0));
}

@ -203,6 +203,10 @@ void Widget::initConfig()
ui->label_aptserver->setText("不存在");
}
aptserver.close();
//新建临时文件夹
QDir dir("/tmp");
dir.mkdir("spark-store");
}
void Widget::setTheme(bool isDark,QColor color)
{
@ -295,7 +299,7 @@ void Widget::loadappinfo(QUrl arg1)
QDir dir("/tmp");
dir.mkdir("spark-store");
QDir::setCurrent("/tmp/spark-store");
get_json.start("wget -O app.json "+arg1.toString());
get_json.start("curl -o app.json "+arg1.toString());
get_json.waitForFinished();
QFile app_json("app.json");
if(app_json.open(QIODevice::ReadOnly)){
@ -346,7 +350,7 @@ void Widget::loadappinfo(QUrl arg1)
ui->pushButton_download->setText("安装");
}
//图标加载
get_json.start("wget -O icon.png "+urladdress+"icon.png");
get_json.start("curl -o icon.png "+urladdress+"icon.png");
get_json.waitForFinished();
QPixmap appicon(QString::fromUtf8(TMP_PATH)+"/icon.png");
ui->label_appicon->setPixmap(appicon);
@ -364,7 +368,7 @@ void Widget::loadappinfo(QUrl arg1)
ui->screen_3->hide();
ui->screen_4->hide();
for (int i=0;i<5;i++) {
get_json.start("wget "+urladdress+"screen_"+QString::number(i)+".png");
get_json.start("curl -o screen_"+QString::number(i)+".png "+urladdress+"screen_"+QString::number(i)+".png");
get_json.waitForFinished();
if(screen[i].load("screen_"+QString::number(i)+".png")){
label_screen[i]->setImage(screen[i]);
@ -528,7 +532,7 @@ void Widget::on_pushButton_updateServer_clicked()
ui->pushButton_updateServer->setEnabled(false);
ui->comboBox_server->clear();
QFile::remove(QDir::homePath().toUtf8()+"/.config/spark-store/server.list");
system("wget -P "+QDir::homePath().toUtf8()+"/.config/spark-store http://dcstore.shenmo.tech/store/server.list");
system("curl -o "+QDir::homePath().toUtf8()+"/.config/spark-store/server.list http://dcstore.shenmo.tech/store/server.list");
std::fstream server;
server.open(QDir::homePath().toUtf8()+"/.config/spark-store/server.list",std::ios::in);
std::string lineTmp;