Графический интерфейс Python в формате json

#python #json #user-interface

Вопрос:

Я пытаюсь показать json в своем графическом интерфейсе, но сейчас это выглядит так:

введите описание изображения здесь

Я хочу, чтобы он был правильно сформирован. Я пробовал использовать это :

 json_text = StringVar()
json_formatted = json.dumps(data, indent=4, sort_keys=True)
json_text.set(json_formatted)
 

Это сработало, когда я распечатал его, но не в моем графическом интерфейсе
Я также пробовал использовать:

 test_json_text = Label(o_canvas_l, anchor='w', textvariable=json_text)
test_json_text.grid(column=0, row=0, sticky=W)
 

Комментарии:

1. Текст расположен по центру. Вы должны установить выровненный по левому краю текст для элемента графического интерфейса, который его отображает.

2. @kol Я пытался (я отредактировал вопрос), но по какой-то причине он не проснулся

3. Для многострочного текста Message виджет лучше, чем Label . Установите anchor="w" , чтобы выровнять текст по левому краю. К сожалению, он обертывает длинные строки. Text Виджет также работает, и его перенос текста можно отключить. Я бы использовал что-то вроде text = tk.Text(frame, wrap=tk.NONE) text.insert(tk.END, "beforenhello, world lorem ipsumnafter") text.configure(state="disabled") text.pack()

4. @kol Спасибо, что это сработало, если вы поставите это в качестве ответа, я могу отметить это как правильное решение

5. Не за что!

Ответ №1:

Для многострочного текста Message виджет лучше, чем Label . Установите anchor="w" , чтобы выровнять текст по левому краю. К сожалению, он обертывает длинные строки. Text Виджет также работает, по умолчанию он выровнен по левому краю, и его перенос текста можно отключить. Я бы использовал что-то вроде:

 text = tk.Text(frame, wrap=tk.NONE)
text.insert(tk.END, "beforenhello, world lorem ipsumnafter")
text.configure(state="disabled")
text.pack()