问题是,我对此代码进行了更多扩展,我遇到了另一个问题:绑定函数被忽略或者当我运行此代码时(当然我的窗口设置在此之上) ):
from tkinter import *
#Window setup, ignore this mostly
app = Tk()
app.title('Geometry Calculator')
app.geometry('384x192+491+216')
app.iconbitmap('Geo.ico')
app.minsize(width=256, height=96)
app.maxsize(width=384, height=192)
app.configure(bg='WhiteSmoke')
PointList = []
def AddCheck(event):
Point = e1.get()
PointTest = Point
if PointTest.find(',') is True:
PTest_X = PointTest[0].split(',')
PTest_Y = PointTest[1].split(',')
try:
PTest_X = float(PTest_X)
PTest_Y = float(PTest_Y)
PointList.append(Point)
l1 = Label(app, text='PointList').grid(row=1, column=0)
e1.delete(0, END)
except:
print('Error: Invalid point format.')
if PointTest.find(',') is False:
print('Error: Invalid point format.')
e1 = Entry(app)
e1.grid(row=0, column=0, sticky=W)
Entry.bind(e1, '<Return>', AddCheck)
mainloop()
基本上,我的目标是做一个&#34;检查&#34;或者你可以在输入条目框中输入的字符串。我正在处理坐标,所以我想要做的第一件事就是查看字符串是否包含逗号。如果它不包含一个,我会自动向终端发出错误信号,稍后我会到窗口。逗号将拆分我将在该程序的最终功能中操作的字符串的两个主要部分。所以,我将逗号中的字符串分成两部分。然后我想看看是否可以使用Try语句将字符串的分割部分(PTest_X和PTest_Y)转换为浮点数,这显然意味着只有逗号之前或之后的整数或浮点数才能在转换下工作。 Try语句的Except部分只是告诉我将错误返回到终端,就像之前一样。因此,如果可以转换PTest_X和PTest_Y,那么当我最终想要将它们附加到列表时,请创建列表的标签,并执行其他操作。
这个问题&#34;检查&#34;系统是向用户提供反馈,告诉他们他们的坐标点&#34;语法&#34;,如果你愿意,是不正确的。我宁愿在这一点上实现这个系统,告诉用户他们已经错误地输入了一个点,而不是在所有事情都已经处理完毕后告诉他们这个。
我这样做是为了用户友好,在用户交互方面,TRULY始终是第一位的。我希望减轻用户使用该程序的任何痛苦。
答案 0 :(得分:0)
绑定功能正常。问题是你正在使用find()
&amp;检查是否True
。 find()
如果确实发现字符串else返回-1,则返回索引。
此外,您的split
无法正常工作,因为它只是在{1}}之前获得索引0,1处的数字值。
,
如果您需要不同的标签,则必须使用循环