此问题用于跟踪与在 Spyder 的各种窗格、文本和图标中完全实施黑暗主题相关的子问题,因为需要许多步骤,包括 Spyder 代码库内部和QDarkStyle
外部的步骤。
被#8020 阻止,最初的实现。 最初来自 #2350 ,最初的问题和讨论线程。
需要“暗化”的地方:
Output
窗口仍然有黑色/深色的地方:
names
列Command to Execute
列其他 Spyder 问题/错误:
外部问题:
@dalthviz ,请继续使用帮助插件。 为此,我认为您需要三件事:
@dalthviz ,请继续
和
这些非常相似。
还有这个
所有这些都在同一个 PR 中。
@ccordoba12 @dalthviz我现在才注意到,但 DataFrameEditor 的 Index 列也不是深色主题(使索引不可见),以防它进入当前的工作批次。
@ccordoba12 @CAM-Gerlach 另一件要修复的事情是将样式表设置为插件的分离窗口:
以编辑器为例:
@dpizetta ,继续努力!! QDarkStyle 2.6.1 看起来非常好:
它看起来很整洁! 也祝大家工作顺利! 我喜欢极简主义的图标 :)
这周我可以改变更多的东西,它会更好:)
标签、工具按钮和一些细节,v2.6.2。
圆角是把戏,哈哈……有很多看起来很奇怪的东西和扁平的东西混合在一起。 在版本 3 中,我们将提供一些选项来设置平面、圆角和调色板更改。 我正在寻找最好的实现。
谢谢 :)
非常感谢@dpizetta !
@CAM-Gerlach,您知道样式问题是我们在这里无法解决的问题,因此请直接在 QDarkStyle 存储库中报告它们。
这真的是在浪费你和我们的时间(比如你打开的关于图标大小、贪婪完成文本等的问题)。
...
我在私聊里回复了你。
报道。
@ccordoba12不确定这是 Spyder 还是 QDarkStyle,但在顶部有选项卡的每个首选项窗格中,各部分周围的轮廓以及文本字段等都是不可见的; 同时,那些没有顶部标签的看起来不错。 例如
那是 QDarkStyle 的事情。 请在那里报告。
您能否确认这些有问题的小部件的养育方式是否正确?
(同时,那些没有顶部标签的看起来不错。例如)`
有时因为它不应用样式。 如果可以,我可以向孩子们介绍风格。 可能类似于您在对话框和弹出窗口中遇到的问题,但没有获得样式。
@dpizetta @ccordoba12我有问题在那里排队,但如果我仍然应该这样做,请告诉我。
@dpizetta ,该对话框的父窗口是主窗口,如下所示:
( self
是这里的主窗口)。
@dpizetta @ccordoba12我有问题在那里排队,但如果我仍然应该这样做,请告诉我。
我认为将所有这些类型的子小部件插入 CSS(如 QStackedWidget QLineEdit)并不是一个好主意,因为它会使维护复杂化。 CSS 应该在级联模式下工作,但为此,所有的父母都应该是正确的。
@dpizetta ,该对话框的父窗口是主窗口,如下所示:
这解决了对话框小部件的问题,现在问题出在 QTab 或 QStacked 中的 QLineEdit。 我看到了你的代码,我发现了这样的行:
在 QtDesigner 中编辑所有小部件时,所有小部件都将父小部件作为主要小部件,采用平面样式而不是层次结构,因此如果它有效,它应该简化。 所以我想在所有这些中引用_self_也可以解决所有问题。 如果你有这样的问题,解决方案可能是一样的,我认为这是最好的。 它类似于#8197,但也适用于子小部件。
你可以试试吗? 你怎么认为?
@dpizetta ,这些都没有帮助。 但我在 qdarkstyle 中发现了这个:
那么也许这导致边界未显示?
我试过了,但它也不起作用。 那一行是去除tab内部widget的边框。 它有可能导致问题。 直到 12 月 5 日我才会有时间解决这个问题,之后我会回来。
好的,非常感谢@dpizetta!
将其添加到上面的 QDarkStyle 部分,谢谢。 你还想让我在那里打开一个问题吗?
此外,在内核连接对话框(控制台 --> 连接到现有内核)中发现了这个问题:当远程内核复选框被聚焦时,它会正确显示(使用 QDarkStyle 主题)。 如果不是(用户单击另一个字段,关注另一个窗口甚至 Alt-Tabs),它会恢复到正常的主题外观。 也许它与作为部分标题或其他东西有关,因为其他地方的复选框没有这个问题,只有这个特定的问题。 Spyder 还是 QDarkStyle?
对比
可能是 qdarstyle 问题。 我会查的。
@dpizetta ,我们如何从 Python 包中获取主要的 qdarkstyle 颜色? 我们需要进行一些调整以匹配主题,我注意到我们不能使用硬编码颜色,因为 Python 2(棕色)和 3(蓝色)中的方案不同。
上面没有列出的一些更黑暗的主题,这次肯定与 Snyder 相关:
- 选项图标仍未更改为深色版本且几乎不可见
- 控制台窗格上下文菜单中的“显示环境变量”和“显示 Sys.Path 内容”对话框不像其他变量资源管理器对话框那样采用深色主题
在 PR #8192 中处理它们。
新外观窗格中的“Qt Window Style”选项对深色 UI 主题无效
这是一个很好的收获,谢谢! @dalthviz ,如果主题是黑暗的(如上面提到的@CAM-Gerlach),请通过禁用此选项来解决这个问题。
在 PR #8192 中处理它们。
抱歉,我没有在上面的列表中看到它们,也没有看到关于该 PR 中的 env 变量和 syspath 查看器的任何内容。
Sympy Latex 打印到控制台当前使用透明 png 和黑色作为地面文本。 这是一个非常难读的黑暗主题:
To: init_printing(forecolor="White")"""
使用深色主题时。
我们如何知道我们是否使用了深色主题?
每次主题更改时,我们都必须运行 init_printing。
至: init_printing(backcolor="White")"""
这是最简单的解决方案,但在非白色背景主题上的文本周围会有一个白色框,类似于当前内嵌图的方式。
@bcolsen因此,无法将实际的 SymPy 文本颜色更改为更改时设置的语法主题“普通文本”颜色?
Sympy 使用乳胶来制作 png,似乎定义自定义颜色需要序言定义,但至少我们可以使用普通文本颜色作为我们是否需要黑色或白色的指南。
啊,是的,我知道颜色在 LaTeX 中是如何工作的,因为我一直在使用它,但我没想到在这种情况下需要定义自定义颜色; 好点子。
好的,那么我们基本上可以使用Spyder使用的逻辑来根据语法主题背景确定UI主题设置为“自动”时应该是“深色”还是“浅色”,即如果高于感知中间灰色则使用默认; 如果颜色更深,请使用forecolor="White"
。 我们只需要在用户对当前语法主题应用更改或选择不同的主题时进行检查和设置; 这个过程现在在我的机器上已经花费了大约 20+ 秒,所以任何微小的额外成本都不应该引起注意。
@Ticonderoga指出帮助中的表标题,例如在scipy.optimize
的文档中,仍然没有主题,并且是白色的,使它们不可见。 另外,我注意到帮助中的滚动条仍然是白色的并且没有主题。 我已将这一点以及我们最近讨论过的所有其他内容添加到上面的帖子中。 截屏:
只是为了在此处引用此内容, @dalthviz ,请解决上述问题。
所以,我又来了,抱歉迟到了。 这周我会工作。
那么也许这导致边界未显示?
这里吐槽的人比较多,issues里的例子会帮我找到合适的地方#123
将其添加到上面的 QDarkStyle 部分,谢谢。 你还想让我在那里打开一个问题吗?
还有这个。
@dpizetta ,我们如何从 Python 包中获取主要的 qdarkstyle 颜色? 我们需要进行一些调整以匹配主题,我注意到我们不能使用硬编码颜色,因为 Python 2(棕色)和 3(蓝色)中的方案不同。
现在没有办法以编程方式获取颜色,这计划在第 3 版中,其中包括更改它的可能性。 在CSS的第一行中,我有一个包含当前颜色的表格,我需要检查它是否是最新的。
init_printing(backcolor="White")"""
包括之前的问题,我认为创建一种更改这些颜色的方法或从版本 3 中的 qdarkstyle 功能中使用它是一个好主意,以便随着主题的变化颜色会随之变化。 我会努力提供这个功能,但我不知道要花多少时间。 我检查颜色后立即使用第一种方法......这些天。 我会告诉你。
谢谢@dpizetta !
init_printing(backcolor="White")"""
实际上,语法高亮应该是什么颜色取决于语法高亮主题背景颜色(我们可以轻松获取/检查),而不是 UI 主题颜色(我只是建议我们使用与“自动”UI 主题选项相同的方法确实确定应为 LaTeX 输出使用白色还是黑色前景色;理想情况下,我们只使用normal text
颜色作为 LaTeX FG 颜色,以便它与任何任意主题匹配(它已经与 Spyder Dark 一起使用,因为该颜色恰好也是白色),但似乎这会增加很多复杂性。
这里有更多的人在抱怨它
伟大的! 很高兴知道我们这边没有问题。
现在没有办法以编程方式获取颜色,这计划在第 3 版中
你打算什么时候发布第 3 版?
实际上,语法高亮应该是什么颜色取决于语法高亮主题背景颜色(我们可以轻松获取/检查),而不是 UI 主题颜色......
哦,是的,我搞砸了条款,我同意你的看法:)
伟大的! 很高兴知道我们这边没有问题。
Hauhau...轮到我了:)
你打算什么时候发布第 3 版?
2019 年 3 月至 4 月
消息:
@dpizetta它已在 #8470 上报告,我可以在 Windows 8.1 上使用 Python 3.6.7、QDarkStyle 2.6.5 ( pip
) 和 Qt/PyQt 5.9.6/5.9.2 在master
当工具栏按钮等被实际点击时没有视觉反馈(就像在正常的灯光主题上一样),让用户无法在没有立即视觉效果的情况下确认实际发生的动作。
此外,也许相关,对于切换按钮(例如,在 Spyder 的“在文件中查找”窗格中的大多数按钮),没有指示按钮的状态是什么(例如区分大小写、正则表达式打开或关闭等),因此用户不得不求助于猜测和检查,尽管按钮实际上是隐形的。
这是你可以解决的问题吗?
@yalov这是 4.0开发版的更新日志路线图等可以看出,最初的黑暗主题实现和大部分工作都是为 Beta 2 完成的,而这里剩下的一些部分和最终实现的完成与 Beta 3 挂钩。从版本字符串可以看出,你有 Beta 1。Beta 2 应该会在接下来的几周内发布,或者如果你有胆量,可以在 Github 上试用开发版。
Qdarkstyle 不适用于 EditTabNamePopup 以重命名控制台。 因为 EditTabNamePopup 的 QLineEdit 的父级是 None。
class EditTabNamePopup(QLineEdit):
"""Popup on top of the tab to edit its name."""
def __init__(self, parent, split_char, split_index):
"""Popup on top of the tab to edit its name."""
# Variables
# Parent (main)
self.main = parent if parent is not None else self.parent()
self.split_char = split_char
self.split_index = split_index
# Track which tab is being edited
self.tab_index = None
# Widget setup
QLineEdit.__init__(self, parent=None)
@ok97465 ,请
@ccordoba12谢谢。 晚上我会提交PR。
新项目:文件切换器中的信息图标没有主题,如#8616 所示。
@dpizetta它已在 #8470 上报告,我可以在 Windows 8.1 上使用 Python 3.6.7、QDarkStyle 2.6.5 (
pip
) 和 Qt/PyQt 5.9.6/5.9.2 在master
当工具栏按钮等被实际点击时没有视觉反馈(就像在正常的灯光主题上一样),让用户无法在没有立即视觉效果的情况下确认实际发生的动作。此外,也许相关,对于切换按钮(例如,在 Spyder 的“在文件中查找”窗格中的大多数按钮),没有指示按钮的状态是什么(例如区分大小写、正则表达式打开或关闭等),因此用户不得不求助于猜测和检查,尽管按钮实际上是隐形的。
这是你可以解决的问题吗?
嗨@CAM-Gerlach,我可以在接下来的几天内处理它。 太棒了!
很抱歉在这里问,但我如何将深色主题添加到我当前的 spyder IDE 中?我通过 anaconda 安装了它,我是几乎所有与编码相关的东西的初学者。我在 linuxmint 19.1 上。有人可以指导我吗?
仅在几个月后发布的开发版本上可用
谢谢(你的)信息。
那么有没有办法在我当前的spyder版本中安装它?如果没有,新版本什么时候发布?
那么有没有办法在我当前的 spyder 版本中安装它?
不。就像@goanpeca刚才说的, It is only available on the development version
如果不是新版本什么时候发布?
同样,如果您阅读@goanpeca的回复,它将be released in some months
。
它也将在 Spyder 4 Beta 2 中可用,该版本已接近完成,应该很快就会发布。 如果你想马上试用,你可以自己安装一个开发版本; 即使对于初学者来说,它也不是那么难。 但是,您最好等待 Beta 2 的正式发布,这应该不会太远。 谢谢。
感谢您的信息,我将等待发布:D
我等不及了! 非常感谢!
@ccordoba12 @dpizetta可能剩下的最大问题(对用户体验产生重大影响,严重损害特定 Spyder 功能的可用性)是几乎不可能判断切换按钮(如正则表达式模式和查找和替换小部件和在文件中查找窗格等)被启用或禁用,它们似乎与用户可能期望的相反。 例子:
禁用:
启用:
因此,例如在启用时以更厚、更亮的白色或蓝色勾勒出它们的轮廓似乎是谨慎的,或者甚至将图标着色为蓝色以指示按钮已打开。 这是可以在 Spyder 方面修复的东西,还是需要在主题本身中完成? 谢谢!
嗨@CAM-Gerlach 这些按钮就像在工具栏中一样,它们是透明的,但是当激活它们时,它们会更改为背景颜色,这就是您在那里的颜色。 在这种情况下,两种颜色是相同的。 我认为当按下事件发生时,它们在边框中显示为蓝色。 我尝试在未激活时添加一些颜色(更亮),在激活时添加另一种(更暗),但它们使界面变得丑陋。
有一些更改可以改进(Qdarksytle 和/或 Spyder):
在正常样式中,它们与按钮相同。
想法? @ccordoba12 @goanpeca @CAM-Gerlach Tks
在这里谈论透明按钮提醒我,我前几天在编辑器的选项卡箭头(在 Linux 上)中发现了这个:
要重现您需要打开的选项卡多于栏内的大小。 有没有其他人得到这个?
@bcolsen我可以确认这也是我在 Windows 上看到的。 (Qt 5.9.7)。
关于选项卡,应该在最新版本 2.6.8 中已经修复。 您使用的是哪些 qdarkstyle 版本?
我支持@CAM-Gerlach 对工具栏按钮的关注。 我认为他们需要以更明显/更令人讨厌的方式改变,而不仅仅是轮廓。 我觉得还不够清楚(即使像 VSCode 这样的其他工具也这样做)
(我认为这还不够清楚,我想知道我可以点击某些东西而不必将鼠标指针移到那里)
@dpizetta我相信我们应该开始使用 SASS 的强大功能在基本的 9 种调色板之外添加更浅和更深的色调来解决这些小调整。
https://sass-lang.com/documentation/functions
我觉得还不够清楚(即使像 VSCode 这样的其他工具也这样做)
我同意,尽管即使 VSCode 的外观也会比我们现在拥有的更清晰,这几乎是不可能分辨出来的,而且看起来是“倒退”的。 但是,理想情况下,我们希望整个按钮是不同的,理想情况下为较暗的颜色,以清楚显示其按下状态(这可能需要工具栏上的闪电)。
2.6.7 是spyder-ide
上的最新版本,但卸载它并从pip
安装 2.6.8 确实解决了箭头问题。 @ccordoba12我们可以在spyder-ide
上获得 2.6.8 并要求 Beta 2 使用它吗?
你的意思是在 conda forge 中添加:-p?
@goanpeca不,它已经在 2.6.8 上。
我们可以在 spyder-ide 上获得 2.6.8
完毕。
我注意到了一段时间的另一个问题:显示错误/警告/等的右侧边栏。 整个文档中的标记不会偏移以匹配滚动条,因此后者不能用作应该可见的指示器。 比较浅色主题:
黑暗主题:
据推测,警告栏需要偏移与深色主题顶部和底部的滚动箭头小部件相等的距离才能避免此问题。
@dpizetta @ccordoba12 @goanpeca关于如何处理无法判断是否激活的切换图标的想法/意见? 这可能是此列表中要修复的最重要的项目,因为它对 Find/Replace 和 Find in FIles 具有重大的可用性影响。
显示错误/警告/等的右侧边栏。 整个文档中的标记不会偏移以匹配滚动条,因此后者不能用作应该可见的指示器
这与黑暗主题无关。 请打开一个关于它的新问题。
@ccordoba12我打开了一个新问题,但我很困惑。 您能解释一下仅在深色 UI 主题下出现的 UI 问题是如何出现nothing to do with the dark theme
吗?
因为它发生在编辑器背景较暗时,无论主题如何,如上面的屏幕截图所示。
Ups,对不起,我没有完全阅读你的评论。 我认为这两个主题都有问题。 任何状况之下。 我们将在修复 Sympy 输出的前景色后关闭此错误,因此最好打开新问题。
Ups,对不起,我没有完全阅读你的评论
没问题,我们都想念东西。 我只是不确定这次是不是我。
任何状况之下。 我们将在修复 Sympy 输出的前景色后关闭此错误,因此最好打开新问题
好吧,自从你告诉我不要这样做以来,我一直在避免这样做。 所以我也应该为
- [ ] 文件切换器中的“信息”图标不是主题
并且,如果它确定最好的行动方案是在 Spyder 中修复它,因为@dpizetta说它可以在我理解的任何一个中解决,
- [ ] 修复切换图标(正则表达式,区分大小写)无法判断它们是激活还是停用(Spyder 或 QDarkstyle)
?
我已经编辑了描述以涵盖这些情况,请参见上文。
@ccordoba12好的,谢谢。 当我自己编辑它以达到类似效果时,我看不到它已经更新了,呵呵。 我已经在此处发布了屏幕截图,因此我将其复制到新问题中。
@dpizetta你想让我在 QDarkStyle 上打开一个问题来解决这里的内容的切换图标问题,还是你已经在处理这个问题? 谢谢!
@dpizetta你想让我在 QDarkStyle 上打开一个问题来解决这里的内容的切换图标问题,还是你已经在处理这个问题? 谢谢!
拜托,@CAM-Gerlach,我已经在做这个了。 目前,合理的选择是在像最新版本的 vscode 一样检查时保持边框突出显示。 我们(@goanpeca)将来可以尝试使用 scss 的其他选项。
@dpizetta谢谢。 根据您的直接要求,我在那里打开了一个问题。
由于黑暗主题的修复将在第 4 版中发布,因此我想到了当前版本的解决方法。 现在唯一的问题似乎是窗口中图标的颜色。 翻了一遍源文件,发现spyder3主题的图标配置在directory_of_spyder/spyder/utils/icon_manager.py中。 (spyder的目录是/lib/python3.7/site-packages/,如果是pip安装的话)。 我通过在必要时添加参数颜色白色来更改变量 _qtaargs。 最终结果如下图所示。
除了帮助和 Qt 文档的某些部分外,暗模式在任何地方都可以完美运行。 我附上了修改后的 icon_manager.py 文件。
icon_manager.py
干杯!
我想到了当前版本的解决方法
不会为当前版本添加任何解决方法,抱歉。
除了问题#9545,我们可以说这已经完成了。
感谢所有为使 Spyder 的黑暗主题成为现实做出贡献的人!
顺便说一下,如果您发现更多关于黑暗主题的问题,请单独报告。
最有用的评论
完毕。