У меня есть виджет ввода в моем графическом интерфейсе, который показывает число, я определил переменную этого виджета как IntVar()
. Теперь я хочу проверить, набрал ли пользователь целое число или число с плавающей запятой.
Моя проблема:
При использовании метода get()
на IntVar()
он возвращает число, но обрезается после десятичного разделителя. Есть ли способ получить пользовательский ввод, прежде чем он будет отключен? Я попытался использовать метод get()
непосредственно для записи, потому что она возвращает строку ввода, которой я могу манипулировать дальше, но не могу получить доступ к записи.
Что касается кода, я покажу вам метод, где размещен виджет ввода.
РЕДАКТИРОВАТЬ: я буду включать больше моего кода для уточнения
class Graphicaluserinterface(tkinter.Frame):
@classmethod
def main(cls):
root = tkinter.Tk()
root.trennzeichenentry = None
root.title('MyProgram')
root.minsize(560, 105)
gui = cls(root)
gui.grid(row=0, column=0, sticky=NSEW)
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root['menu'] = gui.menubar
root.mainloop()
def __init__(self,master=None):
....
self.entrystring = tkinter.IntVar()
def menubaroptions(root):
optionswindow = tkinter.Toplevel(root)
optionswindow.title("Options")
optionswindow.minsize(300,150)
trennzeichenlabel = tkinter.Label(optionswindow,text="Length of Separator in Byte:").pack()
trennzeichenentry = tkinter.Entry(optionswindow,textvariable=root.entrystring,width=30,justify="center").pack()
def methodiwanttocallthevaluein(self):
if __name__ == '__main__':
Graphicaluserinterface.main()
Подведем итог:
Как я могу получить доступ к значению IntVar до того, как оно будет обрезано перед разделителем, или как я могу получить значение trennzeichenentry
в другом методе? Я не могу изменить def menubaroptions(root)
на себя