如何删除for循环中的标签

时间:2015-08-28 06:23:02

标签: python tkinter

那么,我如何删除Tkinter.Label循环中生成的所有for并生成新的[5,12,13],同时保留我的生成方法?因为如果我想降低数字,它将不会删除前一个数字的标签(例如,输入'6',你得到[3,4,5],下一个数字'14'产生[5,12,13]如果有input < 14,我怎么能删除import Tkinter import sys from fractions import gcd def func(event): x = int(e1.get()) # get max number row = 0 column = 0 count = 0 for a in range(1, x): # loops to get each value in range of x for b in range(a, x): for c in range(b, x): if a**2 + b**2 == c**2 and gcd(a, b) == 1: # if it is a primitive pyth triple, print row += 1 l = Tkinter.Label(root, text=('[',a,',',b,',',c,']')) assert isinstance(l, object) l.grid(row=row, column=column, ipadx=5, ipady=5, sticky='W''E') # display each group of triples to root root.title('Primitive Triples') if count > 1: l.destroy() if row == 7: column += 1 row -= 8 def close(): # close program Tkinter.sys.exit(0) sys.exit(0) root = Tkinter.Tk() # establish main gui root.title('Generator') e1 = Tkinter.Entry(root) assert isinstance(e1, object) # only method I've found to allow for Entry().grid() e1.grid(ipadx=5, ipady=5, sticky='W''E') root.bind('<Return>', func) # bind to Enter, cleaner and quicker than a button root.mainloop() ?如果某人有更好的方法为这些标签生成输出,如果你想尝试教育我一点,我将不胜感激。 这是代码:

DELETE https://api.thingspeak.com/channels/4/feeds
       api_key=XXXXXXXXXXXXXXXX

1 个答案:

答案 0 :(得分:1)

在这里,我认为这就是你想要的:(如果是python 2,用import tkinter替换import tkinter作为tkinter)

byte[] Bytes;
Test test1 = new Test();
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
    formatter.Serialize(stream, test1);
    Bytes= stream.ToArray();
}

最初发布的代码有哪些变化如下:

  • 将每个连贯的步骤从一个庞大的函数重构为单独的和 大多数是具有更有说服力的名字的独立功能。变量的名称也被更改为更具可读性。
  • 因此,结果的计算与其格式无关。
  • 结果汇总在一个列表中
  • 传递列表以创建准备显示的tkinter.Labels;这些标签汇总在一个列表中。
  • 显示先前计算结果的(旧)​​标签将从显示中删除并销毁。
  • 然后会显示包含新计算结果的新标签。

原始代码尝试在一个函数中执行所有操作;它没有丢弃旧的结果;结果是(1)显示器是旧的和较新的结果(不准确和不准确)的奇怪组合,并且(2)被丢弃,但是从未被破坏的小部件混乱了应用程序空间。

在OSX上,小部件如下所示:

results for entry = 16

results for entry = 200