如何在Python 3的另一个窗口中打印条目?

时间:2017-12-23 08:33:20

标签: python python-3.x tkinter tkinter-entry

为什么它不打印我在新窗口中输入文本框的字符串值?

data=pd.read_excel(r"C:\test.xlsx")

请不要使用课程

1 个答案:

答案 0 :(得分:4)

仅使用Tk创建主窗口。要创建任何其他窗口,请使用Toplevel。并且只使用一个mainwindow()

var = Widget(...).pack()None分配给var,因为pack() / grid() / place()会返回None。你必须分两行。

var = Widget(...) 
var.pack(). 

如果您不需要var,那么您可以

Widget(...).pack()

使代码更具可读性

  • 我使用import tkinter as tk来表示我使用的是tk.Button,而不是ttk.Button nor my own class Button`
  • 我使用名称user_varpassword_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()