From f0c5a3d3477468dba68d40141a3870c1df21d690 Mon Sep 17 00:00:00 2001 From: feiyangqingyun Date: Wed, 25 Aug 2021 14:30:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gifwidget/frmgifwidget.cpp | 2 ++ gifwidget/gifwidget.cpp | 19 ++++++++++++++++--- gifwidget/main.cpp | 4 ++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/gifwidget/frmgifwidget.cpp b/gifwidget/frmgifwidget.cpp index be8b074..aded8af 100644 --- a/gifwidget/frmgifwidget.cpp +++ b/gifwidget/frmgifwidget.cpp @@ -14,5 +14,7 @@ frmGifWidget::~frmGifWidget() void frmGifWidget::on_pushButton_clicked() { + //设置截图窗口置顶显示 + GifWidget::Instance()->setWindowFlags(GifWidget::Instance()->windowFlags() | Qt::WindowStaysOnTopHint); GifWidget::Instance()->show(); } diff --git a/gifwidget/gifwidget.cpp b/gifwidget/gifwidget.cpp index f74c7a7..1199adb 100644 --- a/gifwidget/gifwidget.cpp +++ b/gifwidget/gifwidget.cpp @@ -16,6 +16,7 @@ #include "qdesktopservices.h" #include "qfiledialog.h" #include "qurl.h" +#include "qtextcodec.h" #include "qdebug.h" #if (QT_VERSION >= QT_VERSION_CHECK(5,0,0)) @@ -307,9 +308,21 @@ void GifWidget::record() int height = txtHeight->text().toInt(); fps = txtFps->text().toInt(); +#ifdef Q_OS_WIN + //windows上需要先转码 +#if defined(_MSC_VER) && (_MSC_VER >= 1400) + QTextCodec *code = QTextCodec::codecForName("utf-8"); +#else + QTextCodec *code = QTextCodec::codecForName("gbk"); +#endif + const char *name = code->fromUnicode(fileName).constData(); +#else + const char *name = fileName.toUtf8().constData(); +#endif + gifWriter = new Gif::GifWriter; - bool bOk = gif.GifBegin(gifWriter, fileName.toLocal8Bit().data(), width, height, fps); - if (!bOk) { + bool ok = gif.GifBegin(gifWriter, name, width, height, fps); + if (!ok) { delete gifWriter; gifWriter = 0; return; @@ -331,7 +344,7 @@ void GifWidget::record() labStatus->setText(QString("录制完成 共 %1 帧").arg(count)); btnStart->setText("开始"); - QDesktopServices::openUrl(QUrl(fileName)); + QDesktopServices::openUrl(QUrl::fromLocalFile(fileName)); } } diff --git a/gifwidget/main.cpp b/gifwidget/main.cpp index a8365a2..816f86a 100644 --- a/gifwidget/main.cpp +++ b/gifwidget/main.cpp @@ -4,9 +4,13 @@ #include #include #include +#include int main(int argc, char *argv[]) { +#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0)) + QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor); +#endif QApplication a(argc, argv); a.setFont(QFont("Microsoft Yahei", 9)); a.setWindowIcon(QIcon(":/image/gifwidget.ico"));