Как изменить межстрочный интервал для текста в ярлыке Tkinter? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть метка, которая должна отображать следующую информацию:

    json = {
        "H3": {
            "atom": "H3",
            "scheme": "NH3_ISA-GRID",
            "type": "HN",
            "rank": "4",
            "moments": [
                "          Q0        Q1        Q2        Q3        Q4",
                "0   0.353619 -0.000000  0.022593 -0.000000  0.016054",
                "1s       NaN -0.020984 -0.000000 -0.010761 -0.000000",
                "1c       NaN -0.009221 -0.000000  0.007970 -0.000000",
                "2s       NaN       NaN -0.016711 -0.000000  0.015248",
                "2c       NaN       NaN  0.016692 -0.000000 -0.009410",
                "3s       NaN       NaN       NaN  0.003688 -0.000001",
                "3c       NaN       NaN       NaN  0.025270 -0.000001",
                "4s       NaN       NaN       NaN       NaN  0.005240",
                "4c       NaN       NaN       NaN       NaN  0.010030"
            ],
            "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA-GRID.mom"
        }
    }

Обратите внимание, как запись «моменты» правильно выровнена как таблица.

Это то, что у меня есть дляпытаясь получить эту информацию в метке:

root = tk.Tk()
root.title("PyMolDat")
num = 0

json = {
        "H3": {
            "atom": "H3",
            "scheme": "NH3_ISA-GRID",
            "type": "HN",
            "rank": "4",
            "moments": [
                "          Q0        Q1        Q2        Q3        Q4",
                "0   0.353619 -0.000000  0.022593 -0.000000  0.016054",
                "1s       NaN -0.020984 -0.000000 -0.010761 -0.000000",
                "1c       NaN -0.009221 -0.000000  0.007970 -0.000000",
                "2s       NaN       NaN -0.016711 -0.000000  0.015248",
                "2c       NaN       NaN  0.016692 -0.000000 -0.009410",
                "3s       NaN       NaN       NaN  0.003688 -0.000001",
                "3c       NaN       NaN       NaN  0.025270 -0.000001",
                "4s       NaN       NaN       NaN       NaN  0.005240",
                "4c       NaN       NaN       NaN       NaN  0.010030"
            ],
            "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA-GRID.mom"
        }
    }

for k, v in json.items():
    for i, j in v.items():

        tk.Label(root, text=i, width=10, anchor="w", font="Arial 10 bold").grid(row=num,
                                                                                column=0, padx=10, sticky="ne")

        tk.Label(root, text=j if i != "moments" else "\n".join(j), width=65, anchor="w", justify='left').grid(
            row=num, column=1, padx=5)

        num += 1

root.mainloop()

и полученная таблица вместо этого теряет соответствующий интервал, см. изображение 1:

image_1

Есть идеи, как отформатировать текстовый блок "моменты"?Большое спасибо за ваше время и усилия.Я только что заметил, что информация в json не совпадает с изображением 1, но, конечно, все то же самое, мой плохой, однако, ничего не должно измениться.

1 Ответ

0 голосов
/ 22 февраля 2019

Использовать моноширинный шрифт , например, font=("Lucida Console", 10):

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...