Заполнение IP-адресов по целому ряду виджетов меток Tkinter - PullRequest
0 голосов
/ 24 марта 2019

Я использую библиотеку 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»)

...