如何在ttk.Combobox的列表视图中更改背景颜色?

时间:2015-07-21 17:16:39

标签: python listview combobox tkinter

如何更改组合框列表视图的样式?

以下是目前代码的一部分:

String googleDocs = "https://docs.google.com/viewer?url=";
String pdf_url = "http://www.somedomain.com/new.pdf";  

webView.loadUrl(googleDocs + pdf_url);

如何访问组合框列表视图的样式?

示例图片:

enter image description here

2 个答案:

答案 0 :(得分:4)

发现它!更改组合框列表视图的BG的方法是:

import ttk
import Tkinter
root = Tkinter.Tk()

root.option_add("*TCombobox*Listbox*Background", 'green')

combo = ttk.Combobox().pack()
root.mainloop()

答案 1 :(得分:1)

您对自己问题的回答帮助我解决了我的问题。所以,我想我会通过进一步贡献来帮助你和其他人:)

在问题中看到您的代码让我相信您想要更改的不仅仅是列表框的背景颜色。我已经尝试了一下,我确定还有其他一些选项可用,但这允许您更新组合框输入字段背景和文本颜色,以及列表框字段背景和文本颜色。

我已经使用下面的代码编写了一个应用程序中的组合框/列表框的示例图片(针对此响应进行了调整)。

希望这对您和任何未来的旅行者有所帮助!

import tkinter as tk
from tkinter import ttk

# variables created for colors
ebg = '#404040'
fg = '#FFFFFF'

root = tk.Tk()

style = ttk.Style()

# Note the code line below.
# Be sure to include this or style.map() won't function as expected.
style.theme_use('alt')

# the following alters the Listbox
root.option_add('*TCombobox*Listbox*Background', ebg)
root.option_add('*TCombobox*Listbox*Foreground', fg)
root.option_add('*TCombobox*Listbox*selectBackground', fg)
root.option_add('*TCombobox*Listbox*selectForeground', ebg)

# the following alters the Combobox entry field
style.map('TCombobox', fieldbackground=[('readonly', ebg)])
style.map('TCombobox', selectbackground=[('readonly', ebg)])
style.map('TCombobox', selectforeground=[('readonly', fg)])
style.map('TCombobox', background=[('readonly', ebg)])
style.map('TCombobox', foreground=[('readonly', fg)])

Combobox and Listbox color example