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

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

新規登録して質問してみよう
ただいま回答率
85.45%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

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

Q&A

解決済

1回答

2419閲覧

Python3 Tkinter タブの点線について

person

総合スコア223

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

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

0グッド

1クリップ

投稿2021/08/17 07:53

Tabをクリックすると、フォーカスが他のウィジェットにあっていないときは点線が付きます。
添付画像のAAAの周りの黒い点線です。

イメージ説明

他のウィジェットにフォーカスがあっていれば消えるのですが、そうでない場合にも点線を付けないようにする方法はありますか?

Python

1import tkinter as tk 2from tkinter import font, ttk 3 4root = tk.Tk() 5 6style = ttk.Style() 7 8my_font = font.Font(size=30) 9 10# https://stackoverflow.com/questions/23038356/change-color-of-tab-header-in-ttk-notebook 11 12style.theme_use("clam") # デフォルトのvistaだと色が変わらないためtheme変更 13style.configure("custom.TNotebook", tabmargins=(0, 10, 0, 0)) 14style.configure("custom.TNotebook.Tab", font=my_font) 15style.map("custom.TNotebook.Tab", background=[("selected", "red"), ("!selected", "yellow")]) 16 17tab = ttk.Notebook(root, style="custom.TNotebook") 18tab.grid(row=0, column=0, sticky="nsew") 19tab1 = tk.Frame(tab) 20tab2 = tk.Frame(tab) 21tab3 = tk.Frame(tab) 22tab.add(tab1, text="AAA") 23tab.add(tab2, text="BBB") 24tab.add(tab3, text="CCC") 25 26# 他のウィジェットにフォーカスを当てる用 27 28entry1 = tk.Entry(tab1) 29entry1.grid() 30entry2 = tk.Entry(tab2) 31entry2.grid() 32entry3 = tk.Entry(tab3) 33entry3.grid() 34 35 36root.mainloop()

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

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

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

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

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

guest

回答1

0

ベストアンサー

その点線は、タブにフォーカスがあることを示すものですね。

タブのスタイルを設定するさい、focuscolorに選択時のbackgroundと同じ値(今回だとred)を設定してやればば、見かけ上点線は表示されなくなります。

diff

1-style.map("custom.TNotebook.Tab", background=[("selected", "red"), ("!selected", "yellow")]) 2+style.map("custom.TNotebook.Tab", background=[("selected", "red"), ("!selected", "yellow")], focuscolor="red")

サンプル

投稿2021/08/17 11:01

編集2021/08/17 11:02
Daregada

総合スコア11990

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

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

person

2021/08/19 04:34 編集

ありがとうございます。 私の環境だと、mapで設定したらエラーになりました。 focuscolorはmap()ではなくconfigure()で設定したら、できました。 (これもthemeによっては反映できない場合があるっぽい。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問