在PySimpleGUI中选择列表框的单个行

4

我的问题很简单,我是PySimpleGUI的初学者,想知道如何在列表框中更改文本颜色,但我只想更改某些特定行的颜色,因此能够运行整个列表并选择这些行非常重要。 请问有人知道如何做到这一点吗?谢谢。


您可以使用 text_color 更改整个列表框的文本颜色。如果不深入到 tk 等级(但这会因操作系统而异,因此并不容易),则无法更改单个行。 - nycynik
多行打印会起作用吗? - nycynik
2个回答

4

需要对列表框中的项目设置选项的tkinter代码。

enter image description here

import PySimpleGUI as sg

sg.theme("DarkBlue")

items = ['USA', 'Mexico', 'Japan', 'Korea', 'UK', 'China', 'France']
asia_index = (2 ,3, 5)

layout = [
    [sg.Listbox(items, size=(10, 7), key='-LISTBOX-')],
]
window = sg.Window('Title', layout, finalize=True)
listbox = window['-LISTBOX-'].Widget
for index in asia_index:
    listbox.itemconfigure(index, bg='green', fg='white')    # set options for item in listbox
while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    print(event, values)

window.close()

1

当创建文本时,您可以通过添加text_color='COLOR'来更改文本的颜色。

例如:

Sg.Text("My text", key="sub_title", size=(15, 1), text_color='yellow')

如果你想改变按钮的颜色,你需要使用 button_color=('FIRST_COLOR', 'SECOND_COLOR'),就像下面这样:

    Sg.Button("Update", key='update_button', size=(25, 1), button_color=('blue', 'purple'))

享受。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接