Как я могу добавить новые подзаголовки в древовидную структуру в tkinter? - PullRequest
0 голосов
/ 23 октября 2019

Что я хочу

Я хочу добавить новые подпункты в мое древовидное представление. В настоящее время после добавления первой группы это выглядит следующим образом:

введите описание изображения здесь

Мои столбцы

columns1=['is up', 'duplex', 'speed', 'mtu']
columns2=['NIC addr', 'netmask addr', 'broadcast addr']

Код для вставки значений первого столбца

 for k,v in network_nic_meta.items():

           itemid1 =self.tree1.insert('', 'end', text="network info", values=(k,k))
           list=v

           i=0

           for data in list:

                 self.tree1.insert(itemid1, 'end', text=columns1[i], values=(data))
                 i+=1 

Я хочу добавить вторые столбцы с их значениями к первым вставленным значениям column1

Что я пробовал

   for k, v in network_nic.items():
        # itemid2 = self.tree1.insert('', 'end', text="network info", values=(k))
        list=v

        i=0
        for data in list:

            self.tree1.insert(itemid1, 'end', text=columns2[i], values=(data.address, data.netmask,data.broadcast))
            i+=1

Что я получаю

введите описание изображения здесь

1 Ответ

0 голосов
/ 27 октября 2019

Итак, я наконец решил это таким образом, но я постараюсь повысить эффективность этого алгоритма подзаголовки

   idRoot=[]
   value=[]
   fieldList=[]
   key=[]



   #add network names
   once=0
   for k,v in network_nic_meta.items():

           key.append(k)
           if(once==0):
               fieldList.append(v._fields)
               once+=1


           value.append(v)


   for network_name in key:
       node =self.tree1.insert('', 'end', text="network info", values=(network_name,network_name))
       idRoot.append(node)


   # #
   first = 0
   second = 4
   k=0
   # for k in range(len(idRoot)):
   for subitem in value:
           val_ = subitem[first:second]

           for index in range(len(val_)):
              self.tree1.insert(idRoot[k],index,text=fieldList[0][index], values=(val_[index]))
           k+=1

   q = collections.deque()
   masterList=[]
   value=[]
   copyValue=[]
   for k, v in network_nic.items():
       i=1
       for index in range(len(v)):
            value.append(v[index].address)
            value.append(v[index].netmask)
            value.append(v[index].broadcast)

            if(i==len(v)):
                copyValue=value.copy()
                q.append(copyValue)
                masterList.append(copyValue)
                value.clear()
            i+=1
   j=0

   for index in range(len(idRoot)):
      count = 1
      for data in masterList[index]:

               self.tree1.insert(idRoot[index], "end", text=columns1[j]+" "+str(count), values=(data, data, data))
               j+=1
               if(j==3):
                 j=0
                 count += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...