質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5788閲覧

[Python] PySimpleGUIのTableエレメントで特定の行だけ文字色を変える

tanaka-jirou

総合スコア16

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/17 06:20

前提・実現したいこと

PySimpleGUIのTableエレメントで特定の行の文字だけ色を変える、もしくは特定の行の背景色を変えることはできますか?

補足情報(FW/ツールのバージョンなど)

Python 3.8.2
PySimpleGUI 4.20.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
teamikl

総合スコア8760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問