今日も見に来てくださって、ありがとうございます。
今回は、tkinterの事前定義の色名にはどんなものがあるのか気になったので作りました。もちろんTcl/Tk本家のホームページのこちらを参考にさせていただきました。実行すると、以下のようなウィンドウが出力されます。
ソースコードは以下の通りです。
import tkinter as tk COLORS = [ "system3dDarkShadow", "systemHighlight", "system3dLight", "systemHighlightText", "systemActiveBorder", "systemInactiveBorder", "systemActiveCaption", "systemInactiveCaption", "systemAppWorkspace", "systemInactiveCaptionText", "systemBackground", "systemInfoBackground", "systemButtonFace", "systemInfoText", "systemButtonHighlight", "systemMenu", "systemButtonShadow", "systemMenuText", "systemButtonText", "systemScrollbar", "systemCaptionText", "systemWindow", "systemDisabledText", "systemWindowFrame", "systemGrayText", "systemWindowText", ] class App(tk.Tk): def __init__(self): super().__init__() for i, c in enumerate(COLORS): foreground = "SystemButtonText" if self.winfo_rgb(c) <= (10,10,10): foreground = "white" label = tk.Label(self, text=c, background=c, foreground=foreground) label.bind("<Enter>", self.show_color_info) label.grid(row=i//5, column=i%5, sticky=(tk.W+tk.E), padx=1, pady=1) def show_color_info(self, event): color = event.widget.cget("text") rgb = event.widget.winfo_rgb(color) rgbstring = "#%02X%02X%02X"%(rgb[0]//256,rgb[1]//256,rgb[2]//256) self.title("You are pointing ["+color+"] and background = "+rgbstring+"]") if __name__ == "__main__": app = App() app.mainloop()
COLORSの内容以外、前回とほとんど変わりませんね。数が減ったので、幅の指定をなくしたのと、色が暗いときには白い字で色名が出力されるようにしました。Mac用の色名も多数あったのでスクリプトを作ったのですけど、ぼくはMacを持っていなくて実行できなかったので、お蔵入りとなりました。