整数参数预期错误tkinter python 3.4

时间:2017-02-16 16:36:07

标签: tkinter python-3.4

我目前正试图用我之前完成的相同任务帮助一位朋友,但我卡住了。一旦程序运行并获得门票'按下此错误信息显示:

在处理上述异常期间,发生了另一个异常:

追踪(最近一次通话):   文件" C:\ Python34 \ lib \ tkinter__init __。py",第1533行,调用     return self.func(* args)   文件" C:\ Users \ harding \ Documents \ Oli \ Homework \ Year10 \ Computing \ New folder \ carpark 3.4(1).py",第21行,在reg_output中     b.readlines(v.get()) TypeError:期望的整数参数,得到' str'

代码:

    from tkinter import *
    import time

    root = Tk()
    root.title('Car Park')

    v = StringVar()

   car_in=Label(root, text= "Please enter your reg number")
   car_in.grid(column=1, row=1)

   reg_input=Entry(root, textvariable =v)
   reg_input.grid(column=1, row=2)

   def reg_input():
     with open ('tickets.txt', 'w') as b:
        b.writelines(v.get())

   def reg_output():
     with open ('tickets.txt', 'r') as b:
        b.readlines(v.get())

   reg_input_but=Button(root, text='Submit', command=reg_input)
   reg_input_but.grid(column=1, row=4)

   reg_output_b=Button(root, text='Get Ticket', command=reg_output)
   reg_output_b.grid(column=1, row=5)

2 个答案:

答案 0 :(得分:1)

v是一个Stringvar,因此v.get()返回一个字符串。 b.readlines(lines)要求行为整数,因为行确定应该读取多少行。如果省略参数,它将读取所有行。

答案 1 :(得分:0)

查看错误,函数readlines需要整数参数,v.get()返回一个字符串,从而导致错误。您可以做的只是将第21行的b.readlines(v.get())更改为b.readlines()以修复错误。

这是编辑后的代码。

from tkinter import *
import time

root = Tk()
root.title('Car Park')

v = StringVar()

car_in=Label(root, text= "Please enter your reg number")
car_in.grid(column=1, row=1)

reg_input=Entry(root, textvariable =v)
reg_input.grid(column=1, row=2)

def reg_input():
    with open ('tickets.txt', 'w') as b:
        b.writelines(v.get())

def reg_output():
    with open ('tickets.txt', 'r') as b:
        b.readlines()

reg_input_but=Button(root, text='Submit', command=reg_input)
reg_input_but.grid(column=1, row=4)

reg_output_b=Button(root, text='Get Ticket', command=reg_output)
reg_output_b.grid(column=1, row=5)