feat: 用 logo.png 作为程序图标并补齐打包资源

- 从 logo.png 生成 packaging/ 下的 ico / icns / 256px png
- Qt 运行时窗口图标走 resources.qrc(不安装也有图标),
  并以 setDesktopFileName 声明桌面文件名
- Linux 增加 voiletmark.desktop 与 make install 规则
  (可执行文件 + desktop 条目 + hicolor 图标)
- Windows 用 RC_ICONS 嵌入 exe 图标,macOS 用 ICON 设置 app bundle 图标
- 关于对话框显示 logo
- 版本 0.3.1
This commit is contained in:
2026-10-22 17:31:57 +08:00
parent dd9c79446e
commit caa65b9c97
8 changed files with 73 additions and 8 deletions
+13 -6
View File
@@ -20,6 +20,7 @@
#include <QMenu>
#include <QMenuBar>
#include <QMessageBox>
#include <QPixmap>
#include <QSaveFile>
#include <QSettings>
#include <QSignalBlocker>
@@ -653,12 +654,18 @@ void MainWindow::applyThemeMode(int mode)
void MainWindow::showAbout()
{
QMessageBox::about(
this, tr("关于 VoiletMark"),
tr("<h3>VoiletMark %1</h3>"
"<p>一个轻量的跨平台 Markdown 编辑器。</p>"
"<p>基于 Qt %2 与 C++17 构建,界面会跟随系统自动切换浅色 / 深色主题。</p>")
.arg(QCoreApplication::applicationVersion(), QString::fromLatin1(qVersion())));
QMessageBox box(this);
box.setWindowTitle(tr("关于 VoiletMark"));
box.setIconPixmap(QPixmap(QStringLiteral(":/logo.png"))
.scaled(72, 72, Qt::KeepAspectRatio, Qt::SmoothTransformation));
box.setTextFormat(Qt::RichText);
box.setText(tr("<h3>VoiletMark %1</h3>"
"<p>一个轻量的跨平台 Markdown 编辑器。</p>"
"<p>基于 Qt %2 与 C++17 构建。</p>")
.arg(QCoreApplication::applicationVersion(),
QString::fromLatin1(qVersion())));
box.setStandardButtons(QMessageBox::Ok);
box.exec();
}
void MainWindow::addRecentFile(const QString &path)