как заставить виджет текстового поля tkinter принимать громоздкие значения в столбце или по вертикали - PullRequest
0 голосов
/ 18 октября 2019

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

import tkinter
from tkinter import *
from tkinter import messagebox
from tkinter import ttk
root=tkinter.Tk()
root.title("CALCULATE 1.0")
root.config(height=600,width=600,bg="light green")
root.minsize(height=600,width=900)
root.maxsize(height=600,width=900)
##############################FUNCTIONS#################################

#########DEF FOR NORTH BUTTON###########
def north():
    b1.config(bg="blue",fg="white")
    b2.config(bg="white",fg="black")
    v2.set(10)
    print(en1.get())
##########DEF FOR SOUTH BUTTON##########
def south():
    b2.config(bg="blue",fg="white")
    b1.config(bg="white",fg="black")
    v2.set(15)
    print(en1.get())
##############DEF FOR CONVERT BUTTON#################
def call():
    val1 =int(t1.get("1.0","end"))
    val2 =int(t2.get("1.0","end"))
    op=int(var1.get())
    val3=int(en.get())
    var2=int(en1.get())
    if op == 6:
        if var2 == 10:
            print(f'textbox 1 value is {val1} textbox 2 value is {val2} entered zone value is {val3} option selected is {op} selected north zone is {var2}')
            result1=val1+var2+6+val3
            result2=val2+val3+6+var2

        else:
            result1=val1+var2+6+val3
            result2=val2+val3+var2+6

    elif op == 7:
        if var2 == 10:
            result1=val1+var2+7+val3
            result2=val2+val3+7+var2

        else:
            result1=val1+var2+7+val3
            result2=val2+val3+var2+7


    elif op == 8:
        if var2 == 10:
            result1=val1+var2+8+val3
            result2=val2+val3+8+var2

        else:
            result1=val1+var2+8+val3
            result2=val2+val3+var2+8

    elif op == 9:
        if  var2 == 10:
            result1=val1+var2+9+val3
            result2=val2+val3+9+var2


        else:
            result1=val1+var2+9+val3
            result2=val2+val3+var2+9


    else:
        if var2 == 10:
            result1=val1+var2+10+val3
            result2=val2+val3+10+var2

        else:
            result1=val1+var2+10+val3
            result2=val2+val3+var2+10

    lb1.insert(0,result1)
    lb2.insert(0,result2)
def refresh():
    i=1.0
    t1.delete(i,"end")
    t2.delete("1.0","end")
    lb1.delete(0,END)
    lb2.delete(0,END)
    en.delete(0,END)
################LISTBOXS###########################
lb2=tkinter.Listbox(root,height=20,selectmode=EXTENDED)
lb2.place(x=730,y=150)
sbar=tkinter.Scrollbar(root,orient="vertical")
lb1=tkinter.Listbox(root,selectmode=EXTENDED,yscrollcommand=sbar.set,height=20)
lb1.place(x=570,y=150)
#sbar.config(command=lb.yview)
##############entries#########################
v2=IntVar()
en1=Entry(root,width=15,text=v2)
en1.place(x=400,y=380)
en=Entry(root,width=15)
en.place(x=400,y=380)
########################TEXTBOX#############################
t1=Text(root,height=20,width=15)
t1.place(x=30,y=150)
t2=Text(root,height=20,width=15)
t2.place(x=190,y=150)
##################LABLES###########################
l1=tkinter.Label(text="INPUT NUM 1:",bg="light green",fg="green",bd=5,padx=8,font=("verdana",15))
l1.place(x=30,y=100)
l2=tkinter.Label(text="INPUT NUM 2:",bg="light green",fg="green",bd=5,padx=8,font=("verdana",15))
l2.place(x=190,y=100)
l3=tkinter.Label(text="OUTPUT NUM 1:",bg="light green",fg="green",bd=5,padx=8,font=("verdana",15))
l3.place(x=560,y=100)
l4=tkinter.Label(text="OUTPUT NUM 2:",bg="light green",fg="green",bd=5,padx=8,font=("verdana",15))
l4.place(x=730,y=100)
l5=tkinter.Label(text="INPUT",bg="light green",fg="black",bd=5,padx=8,font=("verdana",10))
l5.place(x=335,y=375)
l6=tkinter.Label(text="SELECT",bg="light green",fg="black",bd=5,padx=8,font=("verdana",10))
l6.place(x=365,y=150)
#####################BUTTONS#############################
b1=tkinter.Button(root,text="N",pady=15,padx=13,bg="blue",fg="white",command=north,relief=RIDGE)
b1.place(x=511,y=335)
b2=tkinter.Button(root,text="S",pady=15,padx=15,bg="white",command=south,relief=RIDGE)
b2.place(x=510,y=387)
b3=tkinter.Button(root,text="CONVERT",pady=15,padx=15,bg="green",fg="white",relief=GROOVE,command = call)
b3.place(x=400,y=500)
b4=tkinter.Button(text="REFRESH",pady=10,padx=15,bg="blue",fg="white",relief=FLAT,command = refresh)
b4.place(x=600,y=500)
####################DROP DOWN MENU####################
choices=[6,7,8,9,10]
var1=IntVar()
dropdown=tkinter.OptionMenu(root,var1,*choices)
dropdown.place(x=470,y=150)
var1.set("options")
root.mainloop()
...