如何在 Python 3 中打印另一个 window 中的条目?
How to print something from Entry in another window in Python 3?
为什么它不打印我在新窗口的文本框中输入的字符串值?
from tkinter import *
def newwindow():
newwindow = Tk()
newwindow.title('Sign Up')
newwindow.geometry('200x400')
def sign_done():
david = a.get()
javed = b.get()
lbee = Label(newwindow, text=david).pack()
baeee = Label(newwindow, text=javed).pack()
a = StringVar()
b = StringVar()
user = Entry(newwindow, textvariable=a).pack()
pword = Entry(newwindow, textvariable=b).pack()
done = Button(newwindow, text='done now', command=sign_done).pack()
newwindow.mainloop()
root = Tk()
root.title('Gulmeena')
root.geometry("500x200")
button = Button(root, text='Go', command=newwindow).pack()
root.mainloop()
请不要使用类
仅使用 Tk
创建主要 window。要创建任何其他 window,请使用 Toplevel
。并且只使用一个 mainwindow()
.
var = Widget(...).pack()
将 None
分配给 var
因为 pack()
/grid()
/place()
returns None
.你必须分两行来做。
var = Widget(...)
var.pack().
如果你不需要 var 那么你可以
Widget(...).pack()
使代码更具可读性
- 我使用
import tkinter as tk
来表示我使用 tk.Button
,而不是 ttk.Button nor my own class
Button`
- 我使用名字
user_var
和 password_var
这意味着什么
- 我把所有的函数都放在开头——甚至在
newwindow
里面
代码:
import tkinter as tk
def newwindow():
def sign_done():
david = user_var.get()
javed = password_var.get()
tk.Label(newwindow, text=david).pack()
tk.Label(newwindow, text=javed).pack()
newwindow = tk.Toplevel()
newwindow.title('Sign Up')
newwindow.geometry('200x400')
user_var = tk.StringVar()
password_var = tk.StringVar()
user = tk.Entry(newwindow, textvariable=user_var)
user.pack()
pword = tk.Entry(newwindow, textvariable=password_var)
pword.pack()
tk.Button(newwindow, text='done now', command=sign_done).pack()
root = tk.Tk()
root.title('Gulmeena')
root.geometry("500x200")
tk.Button(root, text='Go', command=newwindow).pack()
root.mainloop()
你可以在没有 StringVar
s
的情况下做同样的事情
import tkinter as tk
def newwindow():
def sign_done():
david = user.get()
javed = pword.get()
tk.Label(newwindow, text=david).pack()
tk.Label(newwindow, text=javed).pack()
newwindow = tk.Toplevel()
newwindow.title('Sign Up')
newwindow.geometry('200x400')
user = tk.Entry(newwindow)
user.pack()
pword = tk.Entry(newwindow)
pword.pack()
tk.Button(newwindow, text='done now', command=sign_done).pack()
root = tk.Tk()
root.title('Gulmeena')
root.geometry("500x200")
tk.Button(root, text='Go', command=newwindow).pack()
root.mainloop()
为什么它不打印我在新窗口的文本框中输入的字符串值?
from tkinter import *
def newwindow():
newwindow = Tk()
newwindow.title('Sign Up')
newwindow.geometry('200x400')
def sign_done():
david = a.get()
javed = b.get()
lbee = Label(newwindow, text=david).pack()
baeee = Label(newwindow, text=javed).pack()
a = StringVar()
b = StringVar()
user = Entry(newwindow, textvariable=a).pack()
pword = Entry(newwindow, textvariable=b).pack()
done = Button(newwindow, text='done now', command=sign_done).pack()
newwindow.mainloop()
root = Tk()
root.title('Gulmeena')
root.geometry("500x200")
button = Button(root, text='Go', command=newwindow).pack()
root.mainloop()
请不要使用类
仅使用 Tk
创建主要 window。要创建任何其他 window,请使用 Toplevel
。并且只使用一个 mainwindow()
.
var = Widget(...).pack()
将 None
分配给 var
因为 pack()
/grid()
/place()
returns None
.你必须分两行来做。
var = Widget(...)
var.pack().
如果你不需要 var 那么你可以
Widget(...).pack()
使代码更具可读性
- 我使用
import tkinter as tk
来表示我使用tk.Button
,而不是ttk.Button nor my own class
Button` - 我使用名字
user_var
和password_var
这意味着什么 - 我把所有的函数都放在开头——甚至在
newwindow
里面
代码:
import tkinter as tk
def newwindow():
def sign_done():
david = user_var.get()
javed = password_var.get()
tk.Label(newwindow, text=david).pack()
tk.Label(newwindow, text=javed).pack()
newwindow = tk.Toplevel()
newwindow.title('Sign Up')
newwindow.geometry('200x400')
user_var = tk.StringVar()
password_var = tk.StringVar()
user = tk.Entry(newwindow, textvariable=user_var)
user.pack()
pword = tk.Entry(newwindow, textvariable=password_var)
pword.pack()
tk.Button(newwindow, text='done now', command=sign_done).pack()
root = tk.Tk()
root.title('Gulmeena')
root.geometry("500x200")
tk.Button(root, text='Go', command=newwindow).pack()
root.mainloop()
你可以在没有 StringVar
s
import tkinter as tk
def newwindow():
def sign_done():
david = user.get()
javed = pword.get()
tk.Label(newwindow, text=david).pack()
tk.Label(newwindow, text=javed).pack()
newwindow = tk.Toplevel()
newwindow.title('Sign Up')
newwindow.geometry('200x400')
user = tk.Entry(newwindow)
user.pack()
pword = tk.Entry(newwindow)
pword.pack()
tk.Button(newwindow, text='done now', command=sign_done).pack()
root = tk.Tk()
root.title('Gulmeena')
root.geometry("500x200")
tk.Button(root, text='Go', command=newwindow).pack()
root.mainloop()