iPython:如何从用户获取3个变量

时间:2016-04-21 11:04:28

标签: python interface widget

我遇到了问题。我必须编写程序,检查给定的DAY,MONTH,YEAR的星期几。

我定义了一个函数'dayoftheweek',它找到了给定日期的星期几。 但这是我的问题。我不知道如何从GUI用户那里得到三个变量d,m,y。 此外,我不知道如何制作一个精确的按钮说“接受”,并将我的3个变量移动到dayoftheweek功能。

这是代码

    import math
from tkinter import *

def dayoftheweek(d, m, y):
    a=math.floor((14-m)/12)
    y1=r+4800-a
    n=m+12*-3
    l=d+math.floor((153*n)/5)+365*y1+math.floor(y1/4)-math.floor(y1/100)+math.floor(y1/100)-32045
    p = (l%7)+1
    return p


def date():
   d = int(e1.get())
   m = int(e2.get())
   y = int(e3.get())
   print(dayoftheweek(d, m, y))


master = Tk()
Label(master, text="Day").grid(row=0)
Label(master, text="Month").grid(row=1)
Label(master, text="Year").grid(row=2)

e1 = Entry(master)
e2 = Entry(master)
e3 = Entry(master)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)



mainloop( )

1 个答案:

答案 0 :(得分:0)

要在Tkinter中打印内容,您不能在代码中使用read.csv()语句。

您必须在某处拥有Label,然后更改该Label的内容。为此,您必须为该Label分配一个StringVar。 StringVar就像普通字符串的特殊情况一样,特别是因为每次更改它都会刷新窗口的外观。这就是我在这里所做的:

old <- read.csv2(file.choose(), header = TRUE) 

刚添加了一个标签,我们可以在其中更新一些文字,即“打印到”。

此外,我添加了一个按钮,以便您可以调用您的函数print。您可以通过使用调用指定命令的按钮或通过将键(即Enter,Space ...)绑定到窗口来使窗口执行某些操作。

printVar = StringVar()
Label(master, textvariable=printVar).grid(row=4, column=1)

现在,每次按下按钮,都会调用函数date,printVar的内容将被更改并显示在标签中。

以下是完整代码,我还添加了button = Button(master, text="Ok", command=date).grid(row=3, column=1)) ,因为您的代码不完整,并提供错误date

r=100