Я использую библиотеку Tkinter для заполнения нескольких окон в виджете холста Tkinter, используя метод перетаскивания.Я перетаскиваю виджеты меток на холст, где будут храниться мои IP-адреса.Однако, когда я перетаскиваю метку или метки на холст, сохраняется только один IP-адрес, а не список сохраненных адресов.
Есть ли у кого-нибудь какие-либо идеи относительно того, как я мог бы сделать эту работу для виджетовили, может быть, есть более эффективные методы?
Примечание: когда я печатаю на консоль диапазон генерируемых IP-адресов, все десять адресов выводятся на консоль, но не отдельные виджеты.
генерирует IP-адресаи сохраняет их в списке.
def ipRange(self, start_ip, end_ip):
start = list(map(int, start_ip.split(".")))
end = list(map(int, end_ip.split(".")))
temp = start
ip_range = []
ip_range.append(start_ip)
while temp != end:
start[3] += 1
for i in (3, 2, 1):
if temp[i] == 256:
temp[i] = 0
temp[i - 1] += 1
ip_range.append(".".join(map(str, temp)))
return ip_range
def appear(self, canvas, xy):
ip_range = self.ipRange('192.168.1.0', '192.168.1.10')
if self.canvas:
# we are already on a canvas; do nothing
return
self.X, self.Y = xy
# Create a label which identifies the object, including a unique number
# self.label = Label(canvas, text=self.Name, borderwidth=2, relief=RAISED)
for ip in ip_range:
print ip
self.computerLabel = Label(canvas, text=ip)
# Display the label on a window on the canvas. We need the ID returned by the canvas so we can move the label around as the mouse moves.
self.computerID = canvas.create_window(self.X - self.OffsetX, self.Y - self.OffsetY, window=self.computerLabel, anchor="nw")
# Note the canvas on which we drew the label.
self.canvas = canvas
Мой ожидаемый вывод: каждый раз, когда новый виджет надписи помещается на холст, генерируется новый IP-адрес и IP-адрес сохраняется в метке.(например, только «192.168.0.10» отображается на любой данной метке, а не метки, хранящие диапазон, идущий от «192.168.0.1», «192.168.0.10»)