Die Fenstertastatur wird in einem anderen Fenster angezeigt (TKinter)Python

Python-Programme
Anonymous
 Die Fenstertastatur wird in einem anderen Fenster angezeigt (TKinter)

Post by Anonymous »

Ich schreibe eine App mit vielen Fenstern und Schaltflächen. Ein Taschenrechner ist ein in die App eingebaute und es ist Tastatur, wenn Sie auf die Einschlussschaltfläche des Taschenrechners klicken, befindet sich im Menüfenster. Ich weiß nicht, was das Problem ist, es gibt viele Apps im Hauptmenü und nur ein solches Problem. Dies ist die Rechnungsfunktion:
`
Def Calculator ():
Def add_digit (digit):
value = calc.get () + str (digit)
calc ['state'] = tk.normal
calc.delete(0, tk.end)
; tk.disabled < /p>
def add_operation(operation):
value = calc.get()
if value[-1] in '**-+/*!':
value = value[:-1]
elif '+' in value or '-' in value or '*' in value or '/' in value or '!' in value or '**' in value:
calculate()
value = calc.get()
calc['state'] = tk.NORMAL
calc.delete(0, tk.END)
calc.insert(0, value + operation)
calc['state'] = tk.DISABLED

member = []

def calculate():
value = calc.get()
if value[-1] in '+-/*':
value = value + value[:-1]
calc['state'] = tk.NORMAL
calc.delete(0, tk.END)
member.append(value)
calc['state'] = tk.DISABLED
try:
calc['state'] = tk.NORMAL
calc.insert(0, eval(value))
calc['state'] = tk.DISABLED
except (NameError, SyntaxError):
messagebox.showinfo('Ошибка ввода!', 'Можно писать только числовые выражения!')
except ZeroDivisionError:
messagebox.showinfo('Внимание!', 'На ноль делить нельзя!')

def clear():
calc['state'] = tk.NORMAL
calc.delete(0, tk.END)
calc['state'] = tk.DISABLED

def button(digit):
return tk.Button(text=digit, bd=5, font=('Arial Black', 12), fg='#458B00', command=lambda: add_digit(digit))

def oper_button(operation):
return tk.Button(text=operation, bd=5, font=('Arial Black', 12), fg='#3D59AB',
command=lambda: add_operation(operation))

def answer_button(operation):
return tk.Button(text=operation, bd=5, font=('Arial Black', 12), fg='#FF1493', command=calculate)

def clear_button(operation):
return tk.Button(text=operation, bd=5, font=('Arial Black', 12), fg='#FF1493', command=clear)

def press_key(event):
print(event.char)
if event.char.isdigit():
add_digit(event.char)
elif event.char in '**+-/*abs()':
add_operation(event.char)
elif event.char == '\r':
calculate()

win = tk.Tk()
win.geometry(f"310x400+100+200")
win['bg'] = '#C1CDCD'
win.title('Qcalc')

win.bind('', press_key)

calc = tk.Entry(win, justify=tk.RIGHT, font=('Arial Black', 14), width=15)
calc['state'] = tk.DISABLED
calc.grid(row=0, column=0, columnspan=3, stick='we')

button('1').grid(row=1, column=0, stick='wens', padx=5, pady=5)
button('2').grid(row=1, column=1, stick='wens', padx=5, pady=5)
button('3').grid(row=1, column=2, stick='wens', padx=5, pady=5)
button('4').grid(row=2, column=0, stick='wens', padx=5, pady=5)
button('5').grid(row=2, column=1, stick='wens', padx=5, pady=5)
button('6').grid(row=2, column=2, stick='wens', padx=5, pady=5)
button('7').grid(row=3, column=0, stick='wens', padx=5, pady=5)
button('8').grid(row=3, column=1, stick='wens', padx=5, pady=5)
button('9').grid(row=3, column=2, stick='wens', padx=5, pady=5)
button('0').grid(row=4, column=0, stick='wens', padx=5, pady=5)
button('.').grid(row=3, column=4, stick='wens', padx=5, pady=5)
button('-1').grid(row=4, column=1, stick='wens', padx=5, pady=5)
button('-2').grid(row=4, column=2, stick='wens', padx=5, pady=5)
button('-3').grid(row=4, column=3, stick='wens', padx=5, pady=5)
button('-4').grid(row=5, column=0, stick='wens', padx=5, pady=5)
button('-5').grid(row=5, column=1, stick='wens', padx=5, pady=5)
button('-6').grid(row=5, column=2, stick='wens', padx=5, pady=5)
button('-7').grid(row=5, column=3, stick='wens', padx=5, pady=5)
button('-8').grid(row=6, column=0, stick='wens', padx=5, pady=5)
button('-9').grid(row=6, column=1, stick='wens', padx=5, pady=5)

oper_button('+').grid(row=1, column=3, stick='wens', padx=5, pady=5)
oper_button('-').grid(row=1, column=4, stick='wens', padx=5, pady=5)
oper_button('/').grid(row=2, column=3, stick='wens', padx=5, pady=5)
oper_button('*').grid(row=2, column=4, stick='wens', padx=5, pady=5)
oper_button('**').grid(row=3, column=3, stick='wens', padx=5, pady=5)

answer_button('=').grid(row=6, column=3, stick='wens', padx=5, pady=5)
clear_button('C').grid(row=6, column=2, stick='wens', padx=5, pady=5)

win.grid_columnconfigure(0, minsize=50)
win.grid_columnconfigure(1, minsize=50)
win.grid_columnconfigure(2, minsize=50)
win.grid_columnconfigure(3, minsize=50)
win.grid_columnconfigure(4, minsize=50)
win.grid_columnconfigure(5, minsize=50)
win.grid_columnconfigure(6, minsize=50)
win.grid_columnconfigure(7, minsize=50)
win.grid_columnconfigure(8, minsize=50)
win.grid_columnconfigure(9, minsize=50)

win.grid_rowconfigure(0, minsize=50)
win.grid_rowconfigure(1, minsize=50)
win.grid_rowconfigure(2, minsize=50)
win.grid_rowconfigure(3, minsize=50)
win.grid_rowconfigure(4, minsize=50)
win.grid_rowconfigure(5, minsize=50)
win.grid_rowconfigure(6, minsize=50)
win.grid_rowconfigure(7, minsize=50)
win.grid_rowconfigure(8, minsize=50)
win.grid_rowconfigure(9, minsize=50)

win.mainloop()`
< /code>
Ich surfe nach einem solchen Problem im Internet, L scheint der einzige zu sein. Bitte planen Sie die Codezeile, um den Prolem zu lösen!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post