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

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

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

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

Python

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

Q&A

解決済

1回答

2761閲覧

【Python/Tkinter】ラベルに配置した文字が一部消えてしまう

netz-eng

総合スコア105

Tkinter

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

Python

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

2グッド

1クリップ

投稿2020/07/17 06:00

ラベルに配置した文字が一部消えてしまう

Tkinterを用いて、GUIを作成しています。
以下のようなコードで画面を作成していたところ、なぜか図に示した部分だけ、文字の一部がかすれたように消えてしまうことに気づきました。

該当のソースコード

python

1import tkinter as tk 2import tkinter.ttk as ttk 3from tkinter import filedialog 4from tkinter import messagebox 5 6 7 8win = tk.Tk() 9win.resizable(False, False) 10pad = {"padx": 5, "pady": 5} 11pad2 = {"padx": 5, "pady": 10} 12we = tk.W + tk.E 13cen = tk.CENTER 14 15win.title("tkinter") 16 17#フレーム1 18fra_top = tk.Frame(win, cnf=pad) 19fra_top.pack(expand=True, fill="x", padx=10) 20fra_top.columnconfigure([1, 3, 5], weight=1) 21fra_top.rowconfigure([0, 1, 2], weight=1) 22 23lbl1 = ttk.Label(fra_top, text="ファイルのパス:") 24lbl1.grid(row=0, column=0, cnf=pad, sticky=we) 25tex1 = tk.Entry(fra_top, width=50) 26tex1.insert(tk.END, path) 27tex1.grid(row=1, column=0, cnf=pad, sticky=we) 28 29lblvoid = ttk.Label(fra_top, text="") 30lblvoid.grid(row=2, column=0, cnf=pad) 31 32 33#フレーム2 34fra_mid = tk.Frame(win, cnf=pad) 35fra_mid.pack(expand=True, fill="x", padx=10) 36fra_mid.columnconfigure([1, 3, 5], weight=1) 37fra_mid.rowconfigure([0, 1, 2], weight=1) 38 39lbl2 = ttk.Label(fra_mid, text="  ああああああ [a]:") 40lbl2.grid(row=0, column=0, cnf=pad) 41tex2 = tk.Entry(fra_mid) 42tex2.grid(row=0, column=1, cnf=pad, sticky=we) 43 44lbl3 = ttk.Label(fra_mid, text="  ばばばばばば [b]:") 45lbl3.grid(row=1,column=0, cnf=pad) 46tex3 = tk.Entry(fra_mid) 47tex3.grid(row=1, column=1, cnf=pad, sticky=we) 48 49lbl4 = ttk.Label(fra_mid, text="くくくくくくくく [c]:") 50lbl4.grid(row=2, column=0, cnf=pad) 51tex4 = tk.Entry(fra_mid) 52tex4.grid(row=2, column=1, cnf=pad, sticky=we) 53 54lblvoid2 = ttk.Label(fra_mid, text="") 55lblvoid2.grid(row=2,column=0, cnf=pad2) 56 57#フレーム3 58fra_mid2 = tk.Frame(win, cnf=pad) 59fra_mid2.pack(expand=True, fill="x", padx=10) 60fra_mid2.columnconfigure([1, 3, 5], weight=1) 61fra_mid2.rowconfigure([0, 1, 2], weight=1) 62 63btnStyle = ttk.Style() 64btnStyle.configure("BoldBtn", weight="bold") 65btn = tk.Button(fra_mid2, text="ボタン", bg="#4682B4", fg="#FFFFFF", font=("",12,"bold","roman","normal","normal"), height=2, width=10, command=btn_click) 66#ボタンの関数に関しては省略 67 68 69#フレーム4 下余白 70fra_mid3 = tk.Frame(win, cnf=pad3) 71fra_mid3.pack(expand=True, fill="x", padx=10) 72fra_mid3.columnconfigure([1, 3, 5], weight=1) 73fra_mid3.rowconfigure([0, 1, 2], weight=1) 74 75lblvoid3 = ttk.Label(fra_mid3, text="") 76lblvoid3.grid(row=0,column=0, cnf=pad3) 77 78 79 80win.mainloop()

上のコードで作成したGUI。赤丸が問題の部分

コード中のフレーム2に配置された「lbl4」というラベルで、この問題が発生しています。

他のラベルでこの現象は一度も起きていません。lbl4でだけ、毎回発生します。
ラベルの内容(「くくくくくくくく [c]」)を他の文字列に変えてみても結果は同じでした。

お詳しい方、この「かすれ」のような現象を回避する方法を教えていただけると嬉しいです。

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

Python 3.7.4

glyzinieh, teamikl👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

lbl4とlblvoid2を二つともfra_midのrow=2に配置していることが原因のようです。

python

1lblvoid2.grid(row=3,column=0, cnf=pad2)

とかにすれば擦れて見える現象については直ります。

投稿2020/07/17 07:10

編集2020/07/17 07:14
yureighost

総合スコア2183

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

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

netz-eng

2020/07/20 01:38

ご回答ありがとうございます! 返答が遅れて申し訳ありません 単純なミスでした…… ご指摘いただいた通り直してみると、無事かすれがなくなりました! 本当にありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問