Связь между двумя скриптами по нажатию кнопки в ткинтере? - PullRequest
0 голосов
/ 06 мая 2018

В моем каталоге два файла (first.py и second.py). У first.py есть кнопка. Таким образом, при нажатии кнопки в окне first.py графического интерфейса она должна быть направлена ​​в окно second.py графического интерфейса. first.py фото окна и second.py фото окна. Поэтому при нажатии кнопки регистрации в файле first.py он должен перейти на страницу регистрации в файле second.py.

Как сделать связь или связь между двумя сценариями?

first.py

import tkinter as tk

root=tk.Tk()
root.title("My Bank")
root.geometry("500x500")

photo=tk.PhotoImage(file="image1.gif")
label = tk.Label(root, image=photo)
label.image = photo
label.pack()
label.place(x=0, y=0, relwidth=1, relheight=1)

tfm = tk.Frame(root, width=2000, height=50)
tfm.pack(side=tk.TOP)

w = tk.Label(tfm, text="MY bank", font=("Times", "24", "bold"), bg="yellow", anchor="e", fg="black", padx=350, pady=10)
w.pack(fill="both")

bfm = tk.Frame(root, width=2000, height=50, bg="gray")
bfm.pack(side=tk.BOTTOM)

w = tk.Label(root, text="Main Menu", font=("Times", "24", "bold"), bg="black", fg="white", padx=350, pady=10)
w.pack(padx=10, pady=30)

button1 = tk.Button(root, text="Sign Up", width=12, height=1, bg="black",fg="white", bd="8", font=("Helvetica", "12", "bold"))
button1.pack(padx=10, pady=10) 

button2 = tk.Button(root, text="Sign In",  width=12, height=1, 
bg="black",fg="white", bd="8",  font=("Helvetica", "12", "bold"))
button2.pack(padx=10, pady=10)

button3 = tk.Button(root, text="Admin Sign In", width=12, height=1, bg="black",fg="white", bd="8",  font=("Helvetica", "12", "bold"))
button3.pack(padx=10, pady=10)

button4 = tk.Button(root, text="Quit!",  width=5, height=1, bg="black",fg="white", bd="10",  font=("Helvetica", "12", "bold"))
button4.pack(padx=10, pady=10)

root.mainloop()

second.py

import tkinter as tk

root=tk.Tk()
root.title("My Bank")
root.geometry("500x500")

photo=tk.PhotoImage(file="image1.gif")
label = tk.Label(root, image=photo)
label.image = photo
label.pack()
label.place(x=0, y=0, relwidth=1, relheight=1)

tfm = tk.Frame(root, width=2000, height=50)
tfm.pack(side=tk.TOP)

w = tk.Label(tfm, text="MY bank", font=("Times", "24", "bold"), bg="yellow", anchor="e", fg="black", padx=350, pady=10)
w.pack(fill="both")

bfm = tk.Frame(root, width=2000, height=50, bg="gray")
bfm.pack(side=tk.BOTTOM)

w = tk.Label(root, text="Sign Up", font=("Times", "24", "bold"), bg="black", fg="white", padx=350, pady=10)
w.pack(padx=10, pady=30)

e1 = tk.Entry(root, width=20,   font=("Times", "14", "bold"), bd=3, fg="blue")
e1.insert(0, 'Username')
e1.pack(padx=150, pady=10)

e2 = tk.Entry(root, width=20,   font=("Times", "14", "bold"), bd=3, fg="blue")
e2.insert(0, 'Email')
e2.pack(padx=150, pady=10)

e3 = tk.Entry(root, width=20,   font=("Times", "14", "bold"), bd=3, fg="blue")
e3.insert(0, 'Password')
e3.pack(padx=150, pady=10)

button1 = tk.Button(root, text="Sign Up", width=12, height=1, bg="black",fg="white", bd="8", font=("Helvetica", "12", "bold"))
button1.pack(padx=100, pady=20) 

root.mainloop()

1 Ответ

0 голосов
/ 07 мая 2018

Я прошел через вашу проблему и думаю, что вы хотите открыть другой файл при нажатии кнопки. Для этого вам нужно импортировать файл, который вы хотите загрузить по нажатию кнопки. И создайте еще одну tkinter функцию во внешнем скрипте. Во время работы с вашим кодом я даже столкнулся с ошибкой, которая на данный момент составляет tkinter.TclError: image "pyimage3" doesn't exist. Я даже исправил это для получения дополнительной информации, посетив эту ссылку . Вот код, в который я внес все изменения.

    """
Spyder Editor

This is a temporary script file.
"""
import second
import tkinter as tk



root=tk.Toplevel()
root.title("My Bank")
root.geometry("500x500")

photo=tk.PhotoImage(file="image1.gif")
label = tk.Label(root, image=photo)
label.image = photo
label.pack()
label.place(x=0, y=0, relwidth=1, relheight=1)

tfm = tk.Frame(root, width=2000, height=50)
tfm.pack(side=tk.TOP)

w = tk.Label(tfm, text="MY bank", font=("Times", "24", "bold"), bg="yellow", anchor="e", fg="black", padx=350, pady=10)
w.pack(fill="both")

bfm = tk.Frame(root, width=2000, height=50, bg="gray")
bfm.pack(side=tk.BOTTOM)

w = tk.Label(root, text="Main Menu", font=("Times", "24", "bold"), bg="black", fg="white", padx=350, pady=10)
w.pack(padx=10, pady=30)

button1 = tk.Button(root, text="Sign Up", command=lambda : second.signup() , width=12, height=1, bg="black",fg="white", bd="8", font=("Helvetica", "12", "bold"))
button1.pack(padx=10, pady=10) 

button2 = tk.Button(root, text="Sign In",  width=12, height=1, 
bg="black",fg="white", bd="8",  font=("Helvetica", "12", "bold"))
button2.pack(padx=10, pady=10)

button3 = tk.Button(root, text="Admin Sign In", width=12, height=1, bg="black",fg="white", bd="8",  font=("Helvetica", "12", "bold"))
button3.pack(padx=10, pady=10)

button4 = tk.Button(root, text="Quit!",  width=5, height=1, bg="black",fg="white", bd="10",  font=("Helvetica", "12", "bold"))
button4.pack(padx=10, pady=10)

root.mainloop()

и другой

    #!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon May  7 11:09:28 2018

@author: kedar
"""

import tkinter as tk

def signup():

    root=tk.Toplevel()
    root.title("My Bank")
    root.geometry("500x500")

    photo=tk.PhotoImage(file="image1.gif")
    label = tk.Label(root, image=photo)
    label.image = photo
    label.pack()
    label.place(x=0, y=0, relwidth=1, relheight=1)

    tfm = tk.Frame(root, width=2000, height=50)
    tfm.pack(side=tk.TOP)

    w = tk.Label(tfm, text="MY bank", font=("Times", "24", "bold"), bg="yellow", anchor="e", fg="black", padx=350, pady=10)
    w.pack(fill="both")

    bfm = tk.Frame(root, width=2000, height=50, bg="gray")
    bfm.pack(side=tk.BOTTOM)

    w = tk.Label(root, text="Sign Up", font=("Times", "24", "bold"), bg="black", fg="white", padx=350, pady=10)
    w.pack(padx=10, pady=30)

    e1 = tk.Entry(root, width=20,   font=("Times", "14", "bold"), bd=3, fg="blue")
    e1.insert(0, 'Username')
    e1.pack(padx=150, pady=10)

    e2 = tk.Entry(root, width=20,   font=("Times", "14", "bold"), bd=3, fg="blue")
    e2.insert(0, 'Email')
    e2.pack(padx=150, pady=10)

    e3 = tk.Entry(root, width=20,   font=("Times", "14", "bold"), bd=3, fg="blue")
    e3.insert(0, 'Password')
    e3.pack(padx=150, pady=10)

    button1 = tk.Button(root, text="Sign Up", width=12, height=1, bg="black",fg="white", bd="8", font=("Helvetica", "12", "bold"))
    button1.pack(padx=100, pady=20) 

    root.mainloop()

Пока вы можете просто скопировать это и использовать его. Надеюсь, это поможет.

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