鱼C论坛

 找回密码
 立即注册
查看: 1058|回复: 2

想在一个函数中创建entry和button组件,button绑定点击事件,然后打印出entry中内容

[复制链接]
发表于 2018-2-8 11:36:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def login_window():
  2.     root = tk.Tk()
  3.     v = tk.StringVar()
  4.     frame = tk.Frame(root,padx = 10,pady = 10)
  5.     frame.pack()
  6.     entry_username = tk.Entry(frame,textvariable = v)
  7.     button_login = tk.Button(frame,text = "登陆",width = 10,command = login_callback)
复制代码


然后想在另一个函数中拿到这个entry组件中的内容

  1. def login_callback():
  2.     print(entry_username.get())
复制代码


这个entry_username是在login_window()函数中创建的,login_callback()函数是访问不到这个entry_username的,
怎么能拿到这个值?,要新建一个文件吗?

这个是主函数中调用:
  1. if __name__ == "__main__":
  2.     login_window()
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-8 12:44:48 | 显示全部楼层
你大概是想把界面封装成一个函数,其实可以不用这样,因为这样的话就会造成在自己函数内部调用其他函数来处理在内部就能处理的数据,我大概改了一下

import tkinter as tk

root = tk.Tk()
v = tk.StringVar()
frame = tk.Frame(root,padx = 10,pady = 10)
frame.pack()
entry_username = tk.Entry(frame,textvariable = v)
entry_username.pack()
   
def login_window():

    button_login = tk.Button(frame,text = "登陆",width = 10,
                             command = login_callback)

    button_login.pack()

def login_callback():
    print(entry_username.get())

if __name__ == "__main__":
    login_window()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-8 13:46:42 | 显示全部楼层
cbs 发表于 2018-2-8 12:44
你大概是想把界面封装成一个函数,其实可以不用这样,因为这样的话就会造成在自己函数内部调用其他函数来处 ...

我的目的就是封装,使主文件里只有方法调用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-27 21:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表