hi,我正在研究python gui项目,我发现应用程序框架的颜色取决于用户的系统主题颜色。我希望我的应用程序具有相同的颜色,请问我该如何实现?我的应用程序主要用于Windows,但如果有一种适用于linux的方法,那就更好了。我正在使用tkinter btw。
或者,也许因为我们有了os.system(command)
,如何从命令行获取颜色?
更新:
我已经尝试过widget styling中列出的输入,但是它们都不起作用,我的系统的主题颜色为light blue
from tkinter import *
if __name__ == '__main__':
root = Tk()
root['bg'] = 'SystemButtonFace' # white
root['bg'] = 'SystemBackground' # black
root['bg'] = 'SystemButtonText' # black
root['bg'] = 'SystemAppWorkspace' # grey
root['bg'] = 'SystemActiveBorder' # grey
root['bg'] = 'SystemActiveCaption' # light grey
root['bg'] = 'SystemInactiveCaption' # light grey
root['bg'] = 'SystemButtonShadow' # darker grey
root['bg'] = 'SystemButtonHighlight' # white with a bit grey
root['bg'] = 'SystemCaptionText' # black
root['bg'] = 'SystemDisabledText' # darker grey
root['bg'] = 'SystemHighlight' # light dark blue
root['bg'] = 'SystemHighlightText' # white
root['bg'] = 'SystemInactiveBorder' # white
root['bg'] = 'SystemInactiveCaptionText' # black
root['bg'] = 'SystemMenu' # white
root['bg'] = 'SystemMenuText' # black
root['bg'] = 'SystemScrollbar' # grey
root['bg'] = 'SystemWindow' # white
root['bg'] = 'SystemWindowFrame' # dark grey
root['bg'] = 'SystemWindowText' # black
root.mainloop()
答案 0 :(得分:1)
您必须自己使用自定义的RGB颜色。
使用键'bg'
了解您的背景色。
无论如何,如果要实现Tkinter框架的自定义,则可以执行以下操作:
from tkinter import *
root = Tk()
print(root['bg']) # Output: SystemButtonFace
root.configure(bg = '#FF0000') # Configuring new color RED
print(root['bg']) # Output: #FF0000
root.mainloop()
此页面上还有有关tkinter样式的更多信息:
查看Macintosh和Windows的默认系统颜色的段落。
Linux通常没有系统颜色,因为它通常由黑色命令行管理。
答案 1 :(得分:1)
Tkinter无法更改窗口边框的颜色,也无法获取颜色。您将需要使用其他特定于窗口管理器的库来获取或更改颜色。