User interface Tkinter程序打开2个windows问题
我正在尝试在tkinter中创建一个银行程序,您可以在其中登录和注册,但当我尝试运行它时,出现了一个问题。当我运行第一个文件时,它会打开窗口2次,这是我不想要的 这是我的主文件:User interface Tkinter程序打开2个windows问题,user-interface,tkinter,python-3.7,User Interface,Tkinter,Python 3.7,我正在尝试在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
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)
现在不管怎样,我总是先运行主文件。任何帮助都将不胜感激。谢谢。问题是从Login.py导入主文件。您正在导入整个模块,其中包括Tk()的创建,因此添加了窗口。另外,最好使用
import tkinter as tk
,而不是从tkinter import*全局导入
如果必须保留主_文件并作为单独文件登录,则可以尝试以下操作:
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()
第二个文件:
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)
唯一的问题是我希望在主文件中使用regclicked和logclicked,因为我将创建更多的文件,如login,我希望主文件是操作的“大脑”,login.py和所有其他文件是操作的外观如果您希望主文件是大脑,那么为什么其他文件需要从主文件导入呢?我之所以让导入文件必须导入主文件,是因为我需要它,所以当按下按钮时,它会激活主文件中的功能。我希望它从主文件激活一个函数的原因是因为稍后我要将打印(“regclicked”)更改为寄存器帧激活的方式