python , tk.entry

Подскажите пожалуйста. Сделал окошко в юпитере с радиобатонами и полями ввода.

В поле ввода: Value(s) moments: вводятся числа в таком стиле 1.5 3.0 или 1.5 3 или 1.5 3; 2.5 1.

Насколько я понял в опциях tk.entry только строковые переменные. Мне бы хотелось эти числа перевести в list np.array

пример кода :

from tkinter import ttk
import numpy as np

window = tk.Tk()
window.geometry('200x100')

labela = ttk.Label(window, text = "Select type curve :")
labela.grid(column = 0, row = 0)
labela.place(x=60,y=170)
labelb=ttk.Label(window, text="Value moment(s):")#.grid(column=0, row=0)
labelb.place(x=60, y=100)
labelc=ttk.Label(window, text="Factor Lande:")#.grid(column=0, row=0)
labelc.place(x=60, y=130)

def callback(selection):
    z=selection
    print(z)

def numval(enterval):
        #s=[]
    numa=valEntered.get()
    #numb=float(valEntered.get()) 
    print(type(numa),numa)# 

def clearval(clearvall):
    valEntered.delete(0, 'end')

def numvalg(entervalg):
    g=np.array(valg.get())
    print(g)

def clearvalg(clearvallg):
    valg.delete(0, 'end')

def choosemoments():
    if v0.get()==1:
        moments='S'
    elif v0.get()==2:
        moments='J'

    print(moments)

name = tk.StringVar()
nameg = tk.StringVar()
options = tk.StringVar()
valEntered =tk.Entry()
valg =tk.Entry()
menu = tk.OptionMenu(window, options, 'chi(T)', 'chi(T)*T', 'muieff(T)', command=callback)

options.set('chi(T)')
menu.place(x=170, y=170)
valEntered = tk.Entry(window, width=12,textvariable=name)
valEntered.bind("<Return>", numval)
valEntered.bind("<Escape>", clearval)
valEntered.place(x=170, y=100)

valg = tk.Entry(window, width=12,textvariable=nameg,state="normal" )
valg.bind("<Return>", numvalg)
valg.bind("<Escape>", clearvalg)
valg.place(x=170, y=130)

v0=tk.IntVar()
v0.set(0)

rS=tk.Radiobutton(window, text="S", variable=v0,value=1,command=choosemoments)

rJ=tk.Radiobutton(window, text="J", variable=v0,value=2,command=choosemoments)

rS.place(x=60,y=70)
rJ.place(x=100, y=70)

window.title('OneCurveGui')
window.geometry("400x300+10+10")
window.mainloop()

в принципе я могу перевести числа (с плавающей точкой) в строковой переменной в np.array или list , вот пример работающего кода

#def find_all(string,substring):
    #length = len('.')
    #c=0
    #indexes = []
    #while c < len(numa):
    #    if numa[c:c+1] == '.':
    #        f=indexes.append(c)
    #        c=c+1
        #return indexes
        #f=find_all(numa,'.')
        #def numinstr(p,f):
    #s=[]
    #i=0
    #while i<=len(f)-1:
    #     s.append(float(numa[f[i]-1:f[i]+2]))## g.append()np.round()
    #     i+=1
    #else:
    #     print(' ')
            #return s 
        #S=numinstr(numa,f)
    #print(s)

Ответы (0 шт):