前提・実現したいこと
PySimpleGUIのTableエレメントで特定の行の文字だけ色を変える、もしくは特定の行の背景色を変えることはできますか?
補足情報(FW/ツールのバージョンなど)
Python 3.8.2
PySimpleGUI 4.20.0
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
row_colorsオプションで可能です。
但しテーブルの背景色変更にはライブラリ側の不具合があり、
pythonのダウングレードが提案されているようです。
関連: Pysimpleguiで画面が見切れてしまう ※表題と異なりますが、テーブルの背景について回答
以下はPython側でのパッチ適応+特定の行の色変更例
python
1#!/usr/bin/env python3.8 2 3import PySimpleGUI as sg 4 5fix_table_color = """ 6ttk::style map Treeview \ 7 -foreground {disabled SystemGrayText \ 8 selected SystemHighlightText} \ 9 -background {disabled SystemButtonFace \ 10 selected SystemHighlight} 11""" 12 13 14data = [ 15 ["AAA", 1, 1], 16 ["BBB", 2, 1], 17 ["CCC", 3, 1], 18 ["DDD", 4, 0], 19 ["EEE", 5, 0], 20] 21 22layout = [ 23 [sg.Table( 24 key='-TABLE-', 25 values=data, 26 headings=["key", "value1", "value2"], 27 row_colors=[(0, "red", "white"), (4, "white", "#aaaaff")], 28 justification='left', 29 max_col_width=50, 30 auto_size_columns=False, 31 background_color='#aaaaaa', 32 alternating_row_color='#888888', 33 )], 34 [sg.Button("Exit", key="-EXIT-")], 35 ] 36 37 38def main(): 39 from contextlib import closing 40 41 options = {"timeout": 10, "timeout_key": "-INIT-"} 42 43 with closing(sg.Window("Table Demo", layout)) as window: 44 45 while True: 46 event, values = window.read(**options) 47 48 if event in {None, sg.WIN_CLOSED}: 49 break 50 elif event == "-INIT-": 51 window.TKroot.tk.eval(fix_table_color) 52 options.clear() 53 if event == "-EXIT-": 54 break 55 56 57if __name__ == '__main__': 58 main() 59 60
投稿2020/07/17 07:16
編集2020/07/17 07:17総合スコア8681
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。