手动修改Spyder的背景颜色(手动配色)

spyder是一款很不错的python集成开发环境, 但安装之后默认的背景颜色太亮, 很多人都喜欢编写代码时背景为暗色, 这样时间长了眼睛不会太累.

spyder中自带了一些暗背景, 在Tools -> Preferences -> Syntax Coloring里可以进行设置, 暗背景有Monokai, Solarized Dark, Spyder Dark, 这些背景普遍偏蓝色, 部分人看上去会有些不适应. 本篇博客会讲述怎样进行手动配色.

如果你使用Qt编写过C++程序,会感觉Qt Creator Dark这个主题很养眼, Spyder中没有这样的主题, 但我们可以手动进行配置:

1.首先新建一个darkflat.py文件, 复制以下代码粘贴到文件中, 其中SECONDARY是Text Editor的背景,这里设置的是(0x35, 0x35, 0x35), 自己也可以根据喜好修改. 建立好这个文件后将其放置到spyder的安装目录下,一般用anaconda安装的spyder目录为anaconda3/lib/python3.6/site-pakages/spyder/.

from PyQt5.QtGui import QPalette, QColor

WHITE =     QColor(255, 255, 255)
BLACK =     QColor(0, 0, 0)
RED =       QColor(255, 0, 0)
PRIMARY =   QColor(53, 53, 53)
SECONDARY = QColor(0x35, 0x35, 0x35)
TERTIARY =  QColor(42, 130, 218)

def css_rgb(color, a=False):
    """Get a CSS `rgb` or `rgba` string from a `QtGui.QColor`."""
    return ("rgba({}, {}, {}, {})" if a else "rgb({}, {}, {})").format(*color.getRgb())

class QDarkPalette(QPalette):
    """Dark palette for a Qt application meant to be used with the Fusion theme."""
    def __init__(self, *__args):
        super().__init__(*__args)

        # Set all the colors based on the constants in globals
        self.setColor(QPalette.Window,          PRIMARY)
        self.setColor(QPalette.WindowText,      WHITE)
        self.setColor(QPalette.Base,            SECONDARY)
        self.setColor(QPalette.AlternateBase,   PRIMARY)
        self.setColor(QPalette.ToolTipBase,     WHITE)
        self.setColor(QPalette.ToolTipText,     WHITE)
        self.setColor(QPalette.Text,            WHITE)
        self.setColor(QPalette.Button,          PRIMARY)
        self.setColor(QPalette.ButtonText,      WHITE)
        self.setColor(QPalette.BrightText,      RED)
        self.setColor(QPalette.Link,            TERTIARY)
        self.setColor(QPalette.Highlight,       TERTIARY)
        self.setColor(QPalette.HighlightedText, BLACK)

    @staticmethod
    def set_stylesheet(app):
        """Static method to set the tooltip stylesheet to a `QtWidgets.QApplication`."""
        app.setStyleSheet("QToolTip {{"
                          "color: {white};"
                          "background-color: {tertiary};"
                          "border: 1px solid {white};"
                          "}}".format(white=css_rgb(WHITE), tertiary=css_rgb(TERTIARY)))

    def set_app(self, app):
        """Set the Fusion theme and this palette to a `QtWidgets.QApplication`."""
        app.setStyle("Fusion")
        app.setPalette(self)
        self.set_stylesheet(app)

2. 修改spyder/app/mainwindow.py文件, 打开该文件,找到initialize()函数,在这个函数return之前加入三行代码:

from spyder import darkflat
palette = darkflat.QDarkPalette()
palette.set_app(app)

保存退出, 重新打开Spyder, 其背景已经成为我们设置的暗色了.

3.修改完后我们编写代码时会发现有一个美中不足的地方就是有代码的部分的背景和其他部分的背景不一样, 这时我们只要修改一下配色方案即可, Tools -> Preferences -> Syntax Coloring, Edit Selected, 将Background修改为和上面的SECONDARY一致, 注意上面的QColor配色中可以选择十进制和十六进制,而这里默认的是十六进制(前面没有0x)

4. 将背景修改为暗色, 以前暗色的图标现在显示的不明显, 我们再将那些图标改为白色: 打开spyder/utils/icon_manager.py, 在最后的icon()函数的if语句return之前加入两行代码:

if 'color' not in kwargs.keys():
    kwargs['color'] = 'white'

再次重启spyder, 这时原来为暗色的图标现在已经变为白色了.

如果这篇博客对您有用, 别忘了点个赞哦~~~

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baguenaudier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值