Темы и время + Tkinter в Python

В tkinter я сделал пароль GUI, некоторые люди помогли мне с другими вещами. Проблема в том, что я создал файл с именем timeload в котором есть цикл while. Когда я импортирую его в свою программу, он застрял в import потому что внутри timeload есть цикл. Я думаю, что есть способ сделать это с помощью потоков, но я не знаю, как реализовать это в моем коде. Вот основной код:

 import tkinter as tk from threading import Thread import timeload class FirstFrame(tk.Frame): trys = 3 def __init__(self, master, **kwargs): tk.Frame.__init__(self, master, **kwargs) self.pack() master.title("Enter password") master.geometry("300x300") self.clock = tk.Label(self, fg='blue') self.clock.config(text=self.timeload.timeset()) self.clock.pack() self.status2 = tk.Label(self, fg='blue') self.status2.pack() self.status = tk.Label(self, fg='red') self.status.pack() self.number = tk.Label(self, fg='red') self.number.pack() self.trysremain = tk.Label(self, fg='red') self.trysremain.pack() self.userlbl = tk.Label(self, text='Enter Username') self.userlbl.pack() self.userE = tk.Entry(self) self.userE.pack() self.userE.focus() self.lbl = tk.Label(self, text='Enter Password') self.lbl.pack() self.pwd = tk.Entry(self, show="*") self.pwd.pack() self.pwd.bind('<Return>', self.check) self.btn = tk.Button(self, text="Done", command=self.check) self.btn.pack() self.btn = tk.Button(self, text="Cancel", command=self.quit) self.btn.pack() def check(self, event=None): if self.pwd.get() == app.password: if self.userE.get() == app.user: self.destroy() self.app= SecondFrame(self.master) else: self.status2.config(text="Wrong Username") else: self.trys = self.trys - 1 self.status.config(text="Wrong password") self.number.config(text=self.trys) self.trysremain.config(text="Trys remaining") if self.trys == 0: root.destroy() root.quit() class SecondFrame(tk.Frame): def __init__(self, master, **kwargs): tk.Frame.__init__(self, master, **kwargs) self.pack() master.title("Main Application") master.geometry("600x400") self.c = tk.Button(self, text="Options", command=self.third_frame_open) self.c.pack() def third_frame_open(self): self.destroy() self.app= ThirdFrame(self.master) class ThirdFrame(tk.Frame): def __init__(self, master, **kwargs): tk.Frame.__init__(self, master, **kwargs) self.pack() self.password_set = tk.Label(self, fg='green') self.password_set.pack() master.title("Options") master.geometry("400x300") self.but2 = tk.Button(self, text="Go Back", command=self.second_frame_open) self.but2.pack() self.but1 = tk.Button(self, text="Change password", command=self.showpasswordinput) self.but1.pack() self.but1.bind('<Return>', self.showpasswordinput) def showpasswordinput(self): self.but1.pack_forget() self.e = tk.Entry(self.master, show="*") self.e.pack() self.e.focus() self.but2 = tk.Button(self, text="Change password", command=self.set_password) self.but2.pack() self.but2.bind('<Return>', self.set_password) def set_password(self): self.password_set.config(text="Password Updated") setpass = open("password_store.txt", "w") passvar = self.e.get() self.e.pack_forget() setpass.write(passvar) setpass.close() def second_frame_open(self): self.destroy() self.app= SecondFrame(self.master) if __name__=="__main__": root = tk.Tk() app=FirstFrame(root) user = open("user_store.txt", "r") app.user = user.read() user.close() password2 = open("password_store.txt", "r") app.password = password2.read() password2.close() root.mainloop() 

Вот код в timeload :

 import datetime timeload = ('on') while timeload == ('on'): timeset = datetime.datetime.now() 

Спасибо, Джейк

One Solution collect form web for “Темы и время + Tkinter в Python”

Вы не должны использовать длинные или бесконечные циклы в tkinter, они не позволят графическому интерфейсу отвечать на действия пользователя. Правильный способ периодического обновления поля, такого как время, – использовать метод tkinter .after.

См. Приведенный ниже пример базовой программы, где метка обновляется с текущим временем каждые 1 секунду.

 try: import tkinter as tk except: import Tkinter as tk import datetime class App(tk.Frame): def __init__(self,master=None,**kw): #Create the widgets tk.Frame.__init__(self,master=master,**kw) self.timeStr = tk.StringVar() self.lblTime = tk.Label(self,textvariable=self.timeStr) self.lblTime.grid() #Call the update function/method to update with current time. self.update() def update(self): self.timeStr.set(datetime.datetime.now()) ## Now use the .after method to call this function again in 1sec. self.after(1000,self.update) if __name__ == '__main__': root = tk.Tk() App(root).grid() root.mainloop() 
  • Как удалить только границу окна?
  • Отчеты о сбоях в Python
  • Как запустить скрипт Python без его открытия окна консоли?
  • NameError: глобальное имя «END» не определено
  • Воспроизведение анимаций в GIF с помощью Tkinter
  • Передайте переменные Python в `Tkinter.Tcl (). Eval ()`
  • Как привязать нажатие кнопки к кнопке в Tkinter
  • Прокручиваемый класс кадров Python Tkinter?
  • Переместить мяч внутри Tkinter Canvas Widget (простая игра в арканоиде)
  • TypeError: <lambda> () не принимает аргументов (1 данный)
  • Python re "ложная ошибка выхода"
  •  
    Interesting Posts for Van-Lav

    Как я могу сгенерировать n случайных чисел без цикла for

    изменение цвета элементов ttk.Progressbar в xpnative теме – python

    Получите None из данных Fields вместо пустой строки

    Django: добавление классов CSS при рендеринге полей формы в шаблоне

    Объединение всех баз данных SQLite с разными таблицами

    Печать отрицательных значений как hex в python

    Python | изменить цвет текста в оболочке

    Каков наиболее эффективный способ вставки тысяч записей в таблицу (MySQL, Python, Django)

    Python3 байтов в шестнадцатеричную строку

    Получить или создать соответствующий ключ и пользователь (Python – движок приложения)

    Самый чистый способ получить последний элемент из итератора Python

    cx_Oracle не подключается при использовании SID вместо имени службы в строке подключения

    pandas isin () возвращает другой результат как eq () – проблема с переменной dtype-float

    Групповые данные пользователей на Python

    Django не может найти мои мультимедийные файлы (на сервере разработки)

    Python - лучший язык программирования в мире.