2016-04-05 16 views
1

Tkinter numaralı telefon numarasından GUI numarasını kullanmayı deniyorum. Orada bir Listbox var ve kullanıcı için Listbox içinde ne tür bir veri olduğunu bilmek istiyorum, bu yüzden onun için bir etiket ayarlamak istiyorum (üst).Tkinter - liste kutusu için etiket belirleme

Sorun şu ki, bir etiket ayarladığımda, bu Listbox kaybolur.

l = Label(multiple_choose_days_listbox, textvariable=label_day_listbox , anchor=NW, justify='center') 
l.pack() 

çözüm

muhtemelen açıktır ama Tkinter yeniyim.

Herhangi bir tavsiyeniz var mı?

import Tkinter 
import tkSimpleDialog 
from Tkinter import * 

import db 
import ttkcalendar 


class CalendarDialog(tkSimpleDialog.Dialog): 
    """Dialog box that displays a calendar and returns the selected date""" 

    def __init__(self, master): 
     self.calendar = ttkcalendar.Calendar(master) 
     # self.calendar.pack() 

    @property 
    def result(self): 
     return self.calendar.selection 

    def pack(self,**kwargs): 
     self.calendar.pack(**kwargs) 


states_list = db.get_states() 
bought_days_before_list = db.get_bought_days_before() 
multiple_choose_length_of_trips_list = db.get_lengths_of_trips() 


def main(): 
    root = Tkinter.Tk() 
    root.wm_title("CalendarDialog Demo") 
    root.grid_columnconfigure(0, weight=1) 
    root.grid_rowconfigure(0, weight=1) 
    root.geometry("1000x500") 
    top = Frame(root) 
    bottom = Frame(root) 
    top.pack(side=TOP) 
    bottom.pack(side=BOTTOM, fill=BOTH, expand=True) 

    cd_1 = CalendarDialog(root) 
    cd_2 = CalendarDialog(root) 
    cd_1.pack(in_=top, side=LEFT) 
    cd_2.pack(in_=top, side=LEFT) 



    multiple_choose_states_listbox = Listbox(root, selectmode=EXTENDED) 
    multiple_choose_states_listbox.grid(row=20, columns=1) 
    multiple_choose_days_listbox = Listbox(root, selectmode=EXTENDED) 
    multiple_choose_length_of_trips_list_listbox = Listbox(root, selectmode=EXTENDED) 
    label_day_listbox = StringVar() 
    label_day_listbox.set("LABEL") 
    l = Label(multiple_choose_days_listbox, textvariable=label_day_listbox , anchor=NW, justify='center') 
    l.pack() 

    multiple_choose_days_listbox.pack(in_=top,side=LEFT) 
    multiple_choose_states_listbox.pack() 
    multiple_choose_length_of_trips_list_listbox.pack() 

    for item in states_list: 
     multiple_choose_states_listbox.insert(END, item) 

    for item in bought_days_before_list: 
     multiple_choose_days_listbox.insert(END, item) 

    def get_result_dict(): 
     date_from = cd_1.result 
     date_to = cd_2.result 
     states = [states_list[i] for i in multiple_choose_states_listbox.curselection()] 
     bought_days_before = [bought_days_before_list[i] for i in multiple_choose_days_listbox.curselection()] 
     length_of_trip = [states_list[i] for i in multiple_choose_length_of_trips_list.curselection()] 

     res_dict = { 
      'date_from': date_from, 
      'date_to': date_to, 
      'states': states, 
      'bought_days_before': bought_days_before, 
      'length_of_trip': length_of_trip, 
     } 

     return res_dict 

    button = Tkinter.Button(root, text="Generate", command=get_result_dict) 
    button.pack() 

    root.update() 
    root.mainloop() 


if __name__ == "__main__": 
    main() 
+0

(multiple_choose_days_listbox, ...)' Label (root, ...) Eğer anlatırsan ' – Dzhao

cevap

0

O

yerine Label `arasında
l = Tkinter.Label(root, text="Label") 
+0

Cevabınız daha iyi olurdu' Değiştirmek o olmalı niye ya. –