Python GUI с использованием Tkinter, как печатать ввод точно так, как вы их вводите?

1

Я изучаю tkinter на данный момент и пытаюсь выполнить выборочные упражнения, о которых я могу думать. Я хочу, когда я вводим такой ввод:

I've entered this

Я хочу показать их так же, но я только получаю это:

I'veenteredthis

Это фрагмент моего кода для этой части:

input = textBox.get("1.0", 'end-1c') logBox.insert(tk.END, input)

Я попытался сделать это: input = input.replace("\n", "\n"), logBox.insert(tk.END, input+ "\n")

Пожалуйста, поймите, что я недостаточно хорошо осведомлен на Python, поскольку я все еще пытаюсь выучить язык. Заранее спасибо!

Изменение: вот полный код, просто не против других частей, поскольку я пытаюсь что-то сделать

import sys
import os
import time
import operator
import tkinter as tk
from tkinter import *

def test():
    input = textBox.get("1.0", 'end-1c')
    # input = input.replace("\n", "\n")
    logBox.insert(tk.END, input+ "\n")

window = tk.Tk()
window.geometry("{0}x{1}+0+0".format(window.winfo_screenwidth(), 
window.winfo_screenheight()))
window.title("Test")

mainFrame = Frame(window, width=8000, height=8000)
mainFrame.pack(side=TOP)

LabelText = Label(mainFrame, text="Type your text below:", anchor='center', pady=10)
LabelText.pack()

textBox = tk.Text (mainFrame, font=('averdana', 10), height=18, width=180)
textBox.pack()

BTNRun = Button(mainFrame, text="Run", height=1, width=10, 
command=test)
BTNRun.pack(padx=10, pady=10)

LogText = Label(mainFrame, text="Console Log", anchor='ne', pady=10)
LogText.pack()

logBox = tk.Listbox(mainFrame, font=('averdana', 10), height=10, width=180)
logBox.pack()


BTNExit = Button(mainFrame, text="Exit", height=1, width=10, command=quit)
BTNExit.pack()

window.mainloop()'''
Теги:
tkinter

1 ответ

0
Лучший ответ

Не называйте переменный ввод. input - встроенный метод python. При этом вам нужно разбить строку на разрывы строк, поэтому используйте split() а затем введите полученный список.

Измените это:

def test():
    input = textBox.get("1.0", 'end-1c')
    # input = input.replace("\n", "\n")
    logBox.insert(tk.END, input+ "\n")

К этому:

# had to update this function my original answer had some issues
def test():
    my_input = textBox.get("1.0", 'end-1c')
    x = my_input.split("\n")
    for item in x:
        logBox.insert(tk.END, item.strip())
  • 0
    Чего не хватает, так это последней части. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню