Как заставить кнопку tkinter запускать другой файл python - PullRequest
0 голосов
/ 09 октября 2019

Я работаю над GUI базы данных в tkinter, но всякий раз, когда я пытаюсь вложить некоторые функции друг в друга, это всегда вызывает непредсказуемые проблемы, поэтому я хотел бы спросить, можно ли заставить кнопку запустить функцию, которая проверяетусловие, и если оно истинно, запускается другой файл script.py, который открывает другое окно. Возможно ли это

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

I 'Я новичок, так что я не уверен на сто процентов, но я думаю, что это выглядело бы примерно так

from tkinter import *
if name.get() == user_name AND pword.get() == password:
    r = Tk()
    my_btn = Button(r, text= "submit",command = open_py)
    my_btn.grid(row=0,column=0)
    r.mainloop()

Возможно ли такое или нет. Как будет выглядеть "open_py ():"

1 Ответ

0 голосов
/ 10 октября 2019

Вы можете переместить код нового окна в другой файл Python и импортировать его.

Например:

import tkinter as tk

def open_dialog():
    root = tk.Tk()
    button = tk.Text(root, text="Hello!")
    button.pack(root)

    root.mainloop()


if __name__ == "__main__":
    open_dialog()

в hello_dialog.py

import tkinter as tk
from hello_dialog import open_dialog

def main():
    root = tk.Tk()
    button = tk.Button(root, text="Start!", command=open_dialog)
    button.pack(root)

    root.mainloop()

в main.py

Оба файла должны находиться в одной папке. Вы можете запустить main.py, и он будет работать нормально, даже если код для кнопки показывает «Hello!»находится в другом файле. Все файлы Python являются библиотеками, из которых вы можете импортировать функции, классы и переменные. Добавив if __name__ == "__main__", вы можете проверить, была ли ваша функция запущена напрямую или была импортирована другой программой. Чтобы узнать больше о __name__ и импорте других файлов Python, взгляните на Что делать, если __name__ == "__main__": do? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...