#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()