Tkinter Combobox выходные данные в записи - PullRequest
0 голосов
/ 26 апреля 2018

Я работал над этой маленькой системой адресной книги Tkinter. Система такова, что в ней есть выпадающий список и запись. Я извлекаю данные из базы данных в запись.

Вот подвох, я хочу, чтобы запись дала мне номер телефона с именем, которое я выбрал в выпадающем списке. Я выбрал функцию «кто-то» отсюда, изменил несколько вещей, и она все еще дает мне другой вывод.

Вот вывод, который он дает в записи:

<sqlite3.Cursor object at 0x102e09f10>

А вот и код.

class MyListbox:
   def __init__(self, parent, title):
      self.parent = parent
      self.parent.title(title)
      self.parent.protocol("WM_DELETE_WINDOW", self.closes)
       data = cursor.execute('SELECT name FROM addressbook')
       self.myData = data
       self.establishment()

   def combobox_handler(self, event):
       current = self.combobox.current()
       self.entNumber.delete(0, END)
       self.entNumber.insert(END, self.myData)


   def establishment(self):
       mainFrame = Frame(self.parent)
       mainFrame.pack(fill=BOTH, expand=YES)

       self.statusBar = Label(mainFrame, text="App",relief=SUNKEN, bd=1)
       self.statusBar.pack(side=BOTTOM, fill=X)

       fr_left = Frame(mainFrame, bd=10)
       fr_left.pack(fill=BOTH, expand=YES, side=LEFT)

       names = [person[0] for person in self.myData]
       self.combobox = ttk.Combobox(fr_left, values=names)
       self.combobox.bind('<<ComboboxSelected>>', self.combobox_handler)
       self.combobox.pack()

       fr_right = Frame(mainFrame, bd=10)
       fr_right.pack(fill=BOTH, expand=YES, side=RIGHT)

       fr_up = Frame(fr_right)
       fr_up.pack(side=TOP, expand=YES)

       Label(fr_up, text='Telephone').grid(row=0, column=0, sticky=W)
       self.entNumber = Entry(fr_up)
       self.entNumber.grid(row=0, column=1)


   def closes(self, event=None):
       self.parent.destroy()

Заранее спасибо.

1 Ответ

0 голосов
/ 26 апреля 2018

См. Эту часть в вашей переменной current кода, чтобы получить элемент, выбранный в combobox, лучше вместо insert, чтобы в виджете entry не myData из sqlite3.

   def combobox_handler(self, event):
       current = self.combobox.current()
       self.entNumber.delete(0, END)
       self.entNumber.insert(END, self.current)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...