告别单调启动界面:novelWriter欢迎窗口视觉改造全指南

【免费下载链接】novelWriter novelWriter is an open source plain text editor designed for writing novels. It supports a minimal markdown-like syntax for formatting text. It is written with Python 3 (3.8+) and Qt 5 (5.10+) for cross-platform support. 【免费下载链接】novelWriter 项目地址: https://gitcode.com/gh_mirrors/no/novelWriter

novelWriter是一款专为小说创作设计的开源纯文本编辑器,支持类Markdown语法格式化文本,采用Python 3和Qt 5构建,提供跨平台支持。本文将详细介绍如何通过简单修改让novelWriter的欢迎窗口焕然一新,打造个性化的创作启动体验。

欢迎窗口的核心组件与结构

novelWriter的欢迎窗口是用户启动软件时的第一印象,主要由以下核心部分组成:

  • 背景图像:位于窗口底部的装饰性背景,默认使用novelwriter/assets/images/welcome.webp(1400x1200像素)
  • 项目选择面板:显示最近项目列表,支持打开或删除项目
  • 新建项目表单:包含项目名称、作者、路径等创建新项目所需的信息
  • 版本信息区:显示软件版本号和更新状态

novelWriter欢迎窗口默认界面

图1:novelWriter默认欢迎窗口界面,展示了"打开项目"和"新建项目"两个主要视图

欢迎窗口的实现代码位于novelwriter/tools/welcome.py文件中,主要通过GuiWelcome类管理窗口生命周期和用户交互。

背景图像的个性化替换

最直观的视觉改造是更换欢迎窗口的背景图像。默认背景图像存储在以下路径:

novelwriter/assets/images/welcome.webp

替换步骤:

  1. 准备一张分辨率不低于1400x1200像素的图像,建议使用与写作相关的主题(如书桌、书籍、打字机等)
  2. 将图像保存为WebP格式(推荐)或PNG格式
  3. 替换welcome.webp文件(注意备份原始文件)

背景图像的加载逻辑在GuiWelcome类的初始化方法中:

self.bgImage = SHARED.theme.getDecoration("welcome")

如果希望同时修改明暗主题下的显示效果,可以分别提供浅色和深色版本的图像。

界面布局与颜色调整

novelWriter的欢迎窗口支持基本的布局和颜色调整,主要通过修改样式表和配置参数实现。

修改窗口大小

默认窗口大小在novelwriter/config.py中定义:

self.welcomeWinSize = [800, 550]   # Last size of the welcome window

可以直接修改此数值调整初始窗口尺寸,或在运行时通过拖拽窗口边缘调整,软件会自动保存最后一次使用的尺寸。

调整面板透明度

欢迎窗口中的项目列表和新建项目表单面板使用半透明背景,透明度值在welcome.py中定义:

PANEL_ALPHA = 178  # 取值范围0-255,值越高透明度越低

修改此值可以调整面板的通透感,建议保持在150-200之间以平衡美观和内容可读性。

自定义样式表

_OpenProjectPage_NewProjectPage类中,通过样式表定义面板的外观:

base = self.palette().base().color()
base.setAlpha(PANEL_ALPHA)
baseCol = base.name(QtHexArgb)
self.setStyleSheet(
    f"QListView {{border: none; background: {baseCol};}} "
    f"QLineEdit {{border: none; background: {baseCol}; padding: 4px;}} "
)

可以通过修改此样式表调整字体、边框、内边距等视觉元素。

添加自定义欢迎消息

要在欢迎窗口添加个性化欢迎消息或提示,可以修改_OpenProjectPage类中的项目列表空状态文本:

if not data:
    data.append((SAMPLE_NAME, SAMPLE_KEY, self.tr("Select to create an example project")))

将其中的文本替换为自定义内容,如创作灵感提示、写作目标或个性化问候语。

高级定制:添加自定义快捷操作

通过修改welcome.py中的按钮布局,可以添加自定义快捷操作。例如,在按钮栏添加一个"快速开始"按钮:

  1. GuiWelcome类的__init__方法中添加新按钮:
self.btnQuickStart = SHARED.theme.getStandardButton(nwStandardButton.QUICK, self)
self.btnQuickStart.clicked.connect(self._quickStartProject)
  1. 将按钮添加到按钮布局:
self.btnBox.addWidget(self.btnQuickStart)
  1. 实现按钮功能:
@pyqtSlot()
def _quickStartProject(self):
    """快速创建一个默认设置的新项目"""
    defaultPath = CONFIG.homePath() / "My New Novel"
    data = {
        "name": "My New Novel",
        "path": defaultPath,
        "sample": False,
        "chapters": 3,
        "scenes": 2,
    }
    builder = ProjectBuilder()
    if builder.buildProject(data):
        self.openProjectRequest.emit(defaultPath)

主题适配与深色模式

novelWriter支持深色模式,欢迎窗口的背景图像会根据当前主题自动调整。如果自定义图像在深色模式下显示效果不佳,可以提供深色版本的图像:

  1. 将深色版本图像命名为welcome_dark.webp
  2. 修改图像加载逻辑:
themeName = SHARED.theme.name
if themeName.endswith("dark"):
    self.bgImage = SHARED.theme.getDecoration("welcome_dark")
else:
    self.bgImage = SHARED.theme.getDecoration("welcome")

总结与最佳实践

通过简单修改图像资源和少量代码,即可显著提升novelWriter欢迎窗口的视觉体验。以下是一些最佳实践建议:

  • 保持风格统一:自定义图像应与软件整体设计风格协调
  • 注意性能影响:背景图像文件不宜过大,建议控制在500KB以内
  • 备份原始文件:修改前备份原始图像和代码文件,以便恢复
  • 考虑多分辨率适配:使用可缩放的SVG格式或高分辨率图像
  • 测试不同主题:确保自定义内容在明暗两种主题下都有良好表现

novelWriter欢迎窗口背景图像

图2:novelWriter默认欢迎背景图像,展示了舒适的写作场景

通过本文介绍的方法,您可以轻松打造属于自己的个性化novelWriter启动体验,让每次开始写作都充满灵感与愉悦。

【免费下载链接】novelWriter novelWriter is an open source plain text editor designed for writing novels. It supports a minimal markdown-like syntax for formatting text. It is written with Python 3 (3.8+) and Qt 5 (5.10+) for cross-platform support. 【免费下载链接】novelWriter 项目地址: https://gitcode.com/gh_mirrors/no/novelWriter

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐