2013-03-16 4 views

ответ

11

Вы можете получить значение, а затем проверить его длину:

if len(the_entry_widget.get()) == 0: 
    do_something() 

Вы можете получить индекс последнего символа в виджете. Если последний индекс равен 0 (нулю), то пусто:

if the_entry_widget.index("end") == 0: 
    do_something() 
+0

Это работало, спасибо! – SkyDrive26

0

Это также будет работать:

if not the_entry_widget.get(): 
    #do something 
0

Вот пример, используемый в классе.

import Tkinter as tk 
#import tkinter as tk (Python 3.4) 

class App: 
    #Initialization 
    def __init__(self, window): 

     #Set the var type for your entry 
     self.entry_var = tk.StringVar() 
     self.entry_widget = tk.Entry(window, textvariable=self.entry_var).pack() 
     self.button = tk.Button(window, text='Test', command=self.check).pack() 

    def check(self): 
     #Retrieve the value from the entry and store it to a variable 
     var = self.entry_var.get() 
     if var == '': 
      print "The value is not valid" 
     else: 
      print "The value is valid" 

root = tk.Tk() 
obj = App(root) 
root.mainloop() 

Тогда запись сверху может принимать только цифры и строки. Если пользователь вводит пробел, выводит сообщение об ошибке. Теперь, если вы хотите, чтобы ваш вход был в форме целого числа или плавающего или что-то еще, вы должны только его выбросить!

Example: 
yourVar = '5' 
newVar = float(yourVar) 
>>> 5.0 

Надеюсь, что это поможет!

2

Если вы используете StringVar() использование:

v = StringVar() 
entry = Entry(root, textvariable=v) 

if not v.get(): 
    #do something 

Если не использовать:

entry = Entry(root) 
if not entry.get(): 
    #do something