Программы Tkinter, открывающие проблему 2 окон - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь создать банковскую программу в tkinter, где вы входите и регистрируетесь, но возникает проблема, когда я пытаюсь ее запустить.Когда я запускаю первый файл, он открывает окно 2 раза, чего я не хочу.

Это мой основной файл:

from Login import *
from time import *
from tkinter import *

#Frame Setup########
root = Tk()
root.title("Main_File")
root.configure(bg="SeaGreen")
var = Frame(root)
var.configure(bg=var.master['bg'])
var.grid()

Login(var)

def LogClicked():
    print("Log")

def RegClicked():
    print("Reg")

Это мой второй файл:

from tkinter import *

def Login(Log):
    import Main_File
    #First Name#########
    L1 = Label(Log, text="First Name:")
    L1.configure(font=("Courier", 35),bg=L1.master['bg'], fg="Gold")
    L1.grid(row=0, column=0, padx=(50, 0), pady=(100, 0))
    FirstN = Entry(Log)
    FirstN.configure(width=50)
    FirstN.grid(row=0, column=1, pady=(100, 0))

    #Last Name##########
    L2 = Label(Log, text="Last Name:")
    L2.configure(font=("Courier", 35),bg=L2.master['bg'], fg="Gold")
    L2.grid(row=1, column=0, padx=(50, 0), sticky=W)
    LastN = Entry(Log)
    LastN.configure(width=50)
    LastN.grid(row=1, column=1)

    #Login Button#######
    LogB = Button(Log, text="Login", command = lambda : Main_File.LogClicked())
    LogB.configure(font=("Courier", 15),bg=LogB.master['bg'],     activebackground=LogB.master['bg'], width=25)
    LogB.grid(row=3, column=1)

    #Register Button####
    RegB = Button(Log, text="Register", command = lambda : Main_File.RegClicked())
    RegB.configure(font=("Courier", 15),bg=RegB.master['bg'], activebackground=RegB.master['bg'], width=25)
    RegB.grid(row=4, column=1)

Теперь, несмотря ни на что, мне всегда нужно сначала запустить основной файл,Любая помощь будет оценена.Спасибо.

1 Ответ

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

Проблема import Main_File в Login.py.Вы импортируете весь модуль, который включает создание Tk (), отсюда и добавленное окно.Также гораздо предпочтительнее использовать import tkinter as tk вместо глобального импорта from tkinter import *.

Если вам необходимо сохранить Main_file и Login как отдельные файлы, вы можете попробовать следующее:

from Login import Login
from time import *
from tkinter import *

#Frame Setup########
root = Tk()
root.title("Main_File")
root.configure(bg="SeaGreen")
var = Frame(root)
var.configure(bg=var.master['bg'])
var.grid()

Login(var)

root.mainloop()

2-й файл:

from tkinter import *

def Login(Log):
    #First Name#########
    L1 = Label(Log, text="First Name:")
    L1.configure(font=("Courier", 35),bg=L1.master['bg'], fg="Gold")
    L1.grid(row=0, column=0, padx=(50, 0), pady=(100, 0))
    FirstN = Entry(Log)
    FirstN.configure(width=50)
    FirstN.grid(row=0, column=1, pady=(100, 0))

    #Last Name##########
    L2 = Label(Log, text="Last Name:")
    L2.configure(font=("Courier", 35),bg=L2.master['bg'], fg="Gold")
    L2.grid(row=1, column=0, padx=(50, 0), sticky=W)
    LastN = Entry(Log)
    LastN.configure(width=50)
    LastN.grid(row=1, column=1)

    def LogClicked():
        print("Log")

    def RegClicked():
        print("Reg")

    #Login Button#######
    LogB = Button(Log, text="Login", command = lambda : LogClicked())
    LogB.configure(font=("Courier", 15),bg=LogB.master['bg'],     activebackground=LogB.master['bg'], width=25)
    LogB.grid(row=3, column=1)

    #Register Button####
    RegB = Button(Log, text="Register", command = lambda : RegClicked())
    RegB.configure(font=("Courier", 15),bg=RegB.master['bg'], activebackground=RegB.master['bg'], width=25)
    RegB.grid(row=4, column=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...