2

これは、巡回セールスマンの問題によく似ています。大学の名前が入ったリストボックスがあります(Facebookグラフから取得した座標に裏打ちされています)。選択モードを複数に設定しています。彼らが選択した大学を使用できるようにするコードを知る必要があるので、それらを距離法にかけることができます。コードを知っていれば、彼らが何を選択したかを確認できます。curselection() を使用してみましたが、まだ理解できません。

ここにいくつかのコードがあります:

    self.listbox = Listbox(self.mid_frame,width = 42,selectmode ="multiple",
                                        highlightcolor = "orange",
                                        highlightthickness = "10",bd = "5")

    coordinates = []
    collegelist = []
    f = open(sys.argv[1],'r')
    # grab the college's lat and long from facebook graph
    for identity in f:
        urlquery='https://graph.facebook.com/'+identity
        obj = json.load(urllib2.urlopen(urlquery))
        college = obj["name"]
        latitude = obj["location"]["latitude"]
        longitude = obj["location"]["longitude"]
        coordinates.append((college,latitude, longitude))
        collegelist.append(college)

    #sort the colleges so they appear alphabetical order
    sortcollege = sorted(collegelist)
    #fill Listbox with the College names imported from a text file
    for college in sortcollege:
        self.listbox.insert(END, college)

    self.listbox.pack(side = LEFT)
    #The label where I would put the total distance
    self.output_totaldist_label = Label(self.mid_frame,
                                    width = 11,
                                    textvariable = self.totaldistance)
    self.totaldistance = StringVar()
    self.output_label = Label(self.mid_frame,
                              textvariable = self.totaldistance)
    self.output_totaldist_label.pack(side = LEFT)
    self.output_label.pack(side = LEFT)
4

1 に答える 1

2

curselection をどのように試して、何がうまくいかなかったのかを確認できればよかったです。

何かのようなもの:

for idx in self.listbox.curselection():
    selitem = self.listbox.get(idx)

トリックを行う必要があります。あなたはそれを試しましたか?

于 2012-05-15T06:59:25.943 に答える