Перезапуск программы python tkinter

Кнопка «Неправильно-Dimiss» стирается при щелчке и когда нажата клавиша «Return», но если я что-то вступлю, ничего не произойдет. Проблема в том, что если я введу правильно, появится кнопка входа в систему, и она будет работать. Если я введю его неправильно, кнопка «Отмена» появится, и нажатие или нажатие кнопки стирает его. Теперь все, что я ввожу после неправильной попытки, правильное или неправильное ничего не делает. (1) Чтобы избежать этого, мне было интересно, может ли программа просто перезапустить при нажатии/нажатии, ввести кнопку увольнения, без закрытия окна или другого повторного открытия, но я не знаю, как это сделать. (2) Также существует максимальный код попыток входа, который завершает/перезапускает программу, и если да, то как бы поместить ее в этот код? (что-то вроде if> 3 неверно, а затем выйти) Вот код (python3) — попробуйте сами, если хотите:

from tkinter import * class Application(object): def __init__(self, event=None): self.root = Tk() self.root.configure(bg=»darkorchid1″, padx=10, pady=10) self.root.title(«WELCOME») self.username = «Bob» self.welcome = Label(self.root, text=»WELCOME TO MY PROGRAM», bg=»lightgrey», fg=»darkorchid1″) self.welcome.pack() self.label0 = Label(self.root, text=»ENTER NAME:», bg=»purple», fg=»white», height=5, width=50) self.label0.pack() self.entry = Entry(self.root, width=25) self.entry.configure(fg= «white»,bg=»grey20″) self.entry.pack() self.entry.bind(«», self.submit) self.button = Button(self.root, text=»SUBMIT», highlightbackground=»green», width=48, command=self.submit) self.button.pack() def submit(self, event=None): username = self.entry.get() if username == self.username: self.button1 = Button(self.root, text=’LOGIN’, highlightbackground=»green», width=28, command=self.root.destroy) self.button1.pack() self.entry.bind(«», self.login) else: self.button2 = Button(self.root, text=»INCORRECT- CLICK TO DIMISS THIS MESSAGE», highlightbackground=»red», width=48, command=self.incorrect) self.button2.pack() self.entry.bind(«», self.incorrect) def incorrect(self, event=None): self.button2.destroy() def login(self, event=None): self.root.destroy() app=Application() mainloop()

Вместо того, чтобы уничтожать кнопку, я хочу, чтобы это перезапустило программу, но не может найти правильную команду. Это приведет к уничтожению кнопки, поскольку она не существует в начале программы, а также позволяет ввести неправильный или правильный ввод для фактической работы после первой попытки.

Читайте также:
На Макбуке не открываются программы

Как создать исполняемое приложение Python в MacOS и Windows. Десктопное приложение с помощью Tkinter


def incorrect(self, event=None): self.button2.destroy()

Я новичок, поэтому, чем проще, тем лучше. Спасибо.

gmonz 11 март 2017, в 20:35

Источник: overcoder.net

#Изи TKINTER за 5 минут

Перезапустить программу tkinter

Мне интересно, как я могу создать кнопку перезапуска, которая когда-то нажата, может перезапустить весь скрипт. Я думал, что вы уничтожаете окно, а затем уничтожаете его, но, по-видимому, нет функции un-destroy.

спросил(а) 2017-01-15T01:21:00+03:00 6 лет, 5 месяцев назад
добавить комментарий
пожаловаться

Я нашел способ сделать это для общей программы python на этом веб-сайте: https://www.daniweb.com/programming/software-development/code/260268/restart-your-python-program. Я написал пример с базовым графическим интерфейсом tkinter для его проверки:

import sys
import os
from tkinter import Tk, Label, Button

def restart_program():
«»»Restarts the current program.
Note: this function does not return. Any cleanup action (like
saving data) must be done before calling this function.»»»
python = sys.executable
os.execl(python, python, * sys.argv)

root = Tk()

Label(root, text=»Hello World!»).pack()
Button(root, text=»Restart», command=restart_program).pack()

root.mainloop()
ответил(а) 2017-01-15T01:57:00+03:00 6 лет, 5 месяцев назад
добавить комментарий
пожаловаться

Еще в рубрике

Выйти из цикла Python после цикла с помощью сообщения

Создание нескольких кнопок с использованием цикла for и возможность различать их и запускать отдельный код при щелчке мышью.

Источник: progi.pro

Перезапустить программу tkinter

Мне интересно, как я могу создать кнопку перезагрузки, которая после нажатия может перезапустить весь сценарий. Я думал, что вы уничтожаете окно, а затем уничтожаете его, но, очевидно, функции уничтожения нет.

user7367015 14 янв ’17 в 22:21 2017-01-14 22:21
2017-01-14 22:21

3 ответа

Я нашел способ сделать это для универсальной программы на Python на этом сайте: https://www.daniweb.com/programming/software-development/code/260268/restart-your-python-program. Я написал пример с базовым графическим интерфейсом tkinter:

Читайте также:
На вход программе подается последовательность слов каждое слово на отдельной строке питон

import sys import os from tkinter import Tk, Label, Button def restart_program(): «»»Restarts the current program. Note: this function does not return. Any cleanup action (like saving data) must be done before calling this function.»»» python = sys.executable os.execl(python, python, * sys.argv) root = Tk() Label(root, text=»Hello World!»).pack() Button(root, text=»Restart», command=restart_program).pack() root.mainloop()
user6415268 14 янв ’17 в 22:57 2017-01-14 22:57
2017-01-14 22:57

Следующее решение также работает, но оно довольно жесткое, т. Е. Теряется вся среда.

# kills the whole application and starts a fresh one def restart(): root.destroy() root = Tk() root.mainloop()
user12325783 24 окт ’21 в 22:37 2021-10-24 22:37
2021-10-24 22:37

Я хотел бы использовать эту функцию:-

Прежде всего импорта Os модуля

import os

Затем используйте этот код: —

# Restarts the Whole Window def restart(): root.destroy() os.startfile(«main.py»)

Или, если вам не нужна консоль, просто измените расширение файла на .pyw

И запустите этот код: —

# Restarts the Whole Window def restart(): root.destroy() os.startfile(«main.pyw»)

Источник: stackru.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru