使用 appJar GUI 模块化 Python 程序
Modualrize Python program with appJar GUI
如何模块化 appJar 应用程序?当我尝试使用 example code 并将 press()
函数移动到自己的文件中时,此函数不知道 app 变量。我想您最好看看下面的图片 - 如果没有,我会更新问题!
对我来说,将 press()
放在单独的文件中不是个好主意。我宁愿将 press()
保留在当前文件中,它可以使用其他文件中的函数 - 但此文件应将所有值作为参数
modules/methods.py
def display(app):
print("User:", app.entry("Username"), "Pass:", app.entry("Password"))
main.py
from appJar import gui
from modules import methods
def press():
methods.display(app)
with gui("Login Window", "400x200", bg='orange', font={'size':18}) as app:
app.label("Welcome to appJar", bg='blue', fg='orange')
app.entry("Username", label=True, focus=True)
app.entry("Password", label=True, secret=True)
app.buttons(["Submit", "Cancel"], [press, app.stop])
或者事件的其他函数应该只从小部件中获取值
modules/methods.py
def display(username, password):
print("User:", username, "Pass:", password)
main.py
def press():
methods.display(app.entry("Username"), app.entry("Password"))
如果你真的想要 press()
在其他文件中,那么它应该得到 app
作为参数
modules/methods.py
def press(app):
print("User:", app.entry("Username"), "Pass:", app.entry("Password"))
但是你必须使用 lambda:methods.press(app)
来分配给带参数的按钮函数。
main.py
app.buttons(["Submit", "Cancel"], [lambda:methods.press(app), app.stop])
如何模块化 appJar 应用程序?当我尝试使用 example code 并将 press()
函数移动到自己的文件中时,此函数不知道 app 变量。我想您最好看看下面的图片 - 如果没有,我会更新问题!
对我来说,将 press()
放在单独的文件中不是个好主意。我宁愿将 press()
保留在当前文件中,它可以使用其他文件中的函数 - 但此文件应将所有值作为参数
modules/methods.py
def display(app):
print("User:", app.entry("Username"), "Pass:", app.entry("Password"))
main.py
from appJar import gui
from modules import methods
def press():
methods.display(app)
with gui("Login Window", "400x200", bg='orange', font={'size':18}) as app:
app.label("Welcome to appJar", bg='blue', fg='orange')
app.entry("Username", label=True, focus=True)
app.entry("Password", label=True, secret=True)
app.buttons(["Submit", "Cancel"], [press, app.stop])
或者事件的其他函数应该只从小部件中获取值
modules/methods.py
def display(username, password):
print("User:", username, "Pass:", password)
main.py
def press():
methods.display(app.entry("Username"), app.entry("Password"))
如果你真的想要 press()
在其他文件中,那么它应该得到 app
作为参数
modules/methods.py
def press(app):
print("User:", app.entry("Username"), "Pass:", app.entry("Password"))
但是你必须使用 lambda:methods.press(app)
来分配给带参数的按钮函数。
main.py
app.buttons(["Submit", "Cancel"], [lambda:methods.press(app), app.stop])