我想显示一个登录屏幕。登录成功后,我想显示一个带有按钮的窗口。如果我单击该按钮,则应打开一个文件选择器。
使用我的代码,发生的情况是正确登录后,文件选择器将直接打开,而不是单击按钮时打开。如果文件选择器关闭,则显示主窗口和另一个带有按钮的窗口。我的代码有什么问题?我该如何解决?
这是我的代码:
from appJar import gui
app = gui()
def AuthenticationDetails(user, passw):
if user=="myuser" and passw=="mypass":
return True
else:
return False
def press(button):
usr = app.getEntry("Username")
pwd = app.getEntry("Password")
print("User:", usr, "Pass:", pwd)
if AuthenticationDetails(usr, pwd):
Success()
else:
app.errorBox("Failed login", "Invalid username or password")
def Success():
print("Successfully logged in")
def login(btn):
# app.hideSubWindow("Login")
app.showSubWindow("Main", hide=True)
app.buttons(["Choose file"], [choosefile(app)])
# app.addButton("Choose File", choosefile(app))
app.show()
def choosefile(app):
print("Opening Choose file")
app.openBox(title="Choose P1 form pdf file", dirName=None, fileTypes=None, asFile=False, parent="Main")
app.startSubWindow("Login")
app.label("Enter login details", bg='blue', fg='white')
app.entry("Username", label=True, focus=True)
app.entry("Password", label=True, secret=True)
app.buttons(["Submit", "Cancel"], [login, app.stop])
app.stopSubWindow()
app.startSubWindow("Main", title="ESI Superspecialty Reference Helper v1.0")
app.label("Your login was successful", bg='blue', fg='white')
app.setSize("400x200")
app.setBg("blue")
app.setFg("white")
app.stopSubWindow()
app.go(startWindow="Login")
答案 0 :(得分:1)
您的login()
函数正在调用chooseFile()
函数,而不是将其作为回调参数传递。
摆脱app
函数中的chooseFile()
参数,然后在为按钮分配chooseFile
时不包含任何方括号或参数。