【问题标题】:File picker opens without button click on subwindow文件选择器打开时没有按钮单击子窗口
【发布时间】:2018-12-19 16:23:02
【问题描述】:

我想显示一个登录屏幕。登录成功后,我想显示一个带有按钮的窗口。如果我点击按钮,文件选择器应该会打开。

使用我的代码,在正确登录后,文件选择器会直接打开,而不是在单击按钮时打开。如果文件选择器关闭,则会显示主窗口和另一个带有按钮的窗口。我的代码有什么问题?我该如何解决这个问题?

这是我的代码:

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")

【问题讨论】:

    标签: python python-3.x user-interface appjar


    【解决方案1】:

    您的 login() 函数正在调用 chooseFile() 函数,而不是将其作为回调参数传递。

    去掉chooseFile()函数中的app参数,然后在为按钮分配chooseFile时不要包含任何括号或参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多