Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.12.2020
Сообщений: 1
1

Проблема с entry и get()

18.12.2020, 17:09. Показов 2289. Ответов 0

Author24 — интернет-сервис помощи студентам
Создаю программу учета домашней медиатеки. Начинающий программист. Возникла проблема в функции search() и соответственно list_search(arg).
При вводе в поле Entry и дальнейшем нажатии кнопки появляется ошибка. Как я понимаю, в get() считывает пустое поле, но почему и как это исправить?
Хотя все остальные подобные функции работают...
Ошибка:
Exception in Tkinter callback
Traceback (most recent call last):
File "*", line 1883, in __call__
return self.func(*args)
File "*", line 180, in <lambda>
list_search(namesea, authorsea, voicesea, countrysea, yearsea))
File "*", line 193, in list_search
new.append(namesea.get())
File "*", line 3038, in get
return self.tk.call(self._w, 'get')
_tkinter.TclError: invalid command name ".!entry"
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
def search():
    clear()
    label.place_forget()
    buttonshow.place_forget()
    l2 = Label(w, text="Название: ")
    l2.grid(column=0, row=0)
    l2 = Label(w, text="Автор: ")
    l2.grid(column=0, row=1)
    l2 = Label(w, text="Исполнитель: ")
    l2.grid(column=0, row=2)
    l2 = Label(w, text="Страна: ")
    l2.grid(column=0, row=3)
    l2 = Label(w, text="Год: ")
    l2.grid(column=0, row=4)
    name = Entry(w, width=50)
    name.grid(column=1, row=0)
    author = Entry(w, width=50)
    author.grid(column=1, row=1)
    voice = Entry(w, width=50)
    voice.grid(column=1, row=2)
    country = Entry(w, width=10)
    country.grid(column=1, row=3)
    year = Entry(w, width=10)
    year.grid(column=1, row=4)
    btn = Button(w, text="Поиск", command=lambda namesea=name, 
                                                    authorsea=author,
                                                    voicesea=voice,
                                                    countrysea=country,
                                                    yearsea=year: 
                                                    list_search(namesea, authorsea, voicesea, countrysea, yearsea))
    btn.grid(column=1, row=5)
 
def list_search(namesea, authorsea, voicesea, countrysea, yearsea):
    clear()
    label.place_forget()
    buttonshow.place_forget()
    with open ("media.txt", encoding="cp1251") as my_file:
        library = [line.strip('\n').split('|') for line in my_file]
    rows = len(library)
    searchlist = []
    rowslist = 0
    new = []
    new.append(namesea.get())
    new.append(authorsea.get())
    new.append(voicesea.get())
    new.append(countrysea.get())
    new.append(yearsea.get())
    for i in range(rows):
        if library[i][0] != new[0] and new[0] != '':
            continue
        elif library[i][0] == new[0] or new[0] == '':
            for j in range(1,5):
                if library[i][j] == new[j] or new[j] == '':
                    flag = True
                else:
                    flag = False
                    break
            if flag:
                for k in range(5):
                    searchlist.append(library[i][k])
                rowslist +=1
    for i in range(rowslist):
        for j in range(5):
            l = Label(text=searchlist[i][j], relief=RIDGE)
            l.grid(row=i+1, column=j, sticky=NSEW)
        btn_modify[i] = Button(w, text = "Изменить", command=lambda j=i, lines=rows: modify(j, lines))
        btn_modify[i].grid(row=i+1, column=5)
        btn_delete[i] = Button(w, text = "Удалить", command=lambda j=i, lines=rows: delete(j, lines))
        btn_delete[i].grid(row=i+1, column=6)
 
library = []
w = Tk()
w.title("Домашняя медиатека")
w.geometry("800x500")
label = Label(w, text="Привествую в Домашней медиатеке!")
label.place(relx=.5, rely=.2, anchor="c", bordermode=OUTSIDE)
buttonshow = Button(w, text = "К списку", command=mediateka)
buttonshow.place(relx=.5, rely=.5, anchor="c", bordermode=OUTSIDE)
menu = Menu(w)
new_item = Menu(menu)
new_item = Menu(menu, tearoff=0)
new_item.add_command(label="Добавить", command=new_song)
new_item.add_separator()
new_item.add_command(label="Поиск", command=search)
new_item.add_separator()
menu.add_cascade(label="Функции", menu=new_item)
w.config(menu=menu)
w.mainloop()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2020, 17:09
Ответы с готовыми решениями:

Проблема с Tkinter: entry.get() не работает
Я понимаю, что дело в том, что entry находится в другом классе, но не могу понять как сделать так,...

Проблема с получением текста из виджета Entry
Вот код: from Tkinter import * alp=&quot;АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ &quot;...

Проблема при создании Calendar Entry с помощью Lotusscript
Доброго времени суток. Столкнулся с проблемкой. Создаю Reminder с помощью LotusScript. Когда...

Adding Entry Will Cause Text List To Exced 64k.entry Not Added
Вот такая ошибка выскакивает, понятно что идет переполнение rtitem Body, туда добавляеться куча...

Ошибка с циклом Map.Entry entry:hashMap.entrySet
Пытаюсь спарсить сайт со списком и подробнее о каждом элементе. Всё делал по уроку на youtube. При...

0
18.12.2020, 17:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2020, 17:09
Помогаю со студенческими работами здесь

х-к Hotpoint-Ariston ECFD2013HL 303284527*58780850110, модуль ARTICA ENTRY, проблема с программированием
Добрый день коллеги! Возникла необходимость перепрошить модуль на данном холодке, подцепил ключ...

Виджет Entry
Задан такой вопрос - &quot;Что представляет собой аргумент метода show()?&quot; Может быть я чего-то не...

Entry и Button
Есть программа. import pandas as pd import numpy as np arr =...

Map.Entry
Господа. Может кто-нибудь более менее доступно разъяснить про Map.Entry Джавадок пять раз...

Наследование от Entry
import tkinter as tk class EntryPlhr(tk.Entry): def __init__(self,...

Duplicate entry
Пытаюс выполнить запрос в MySQL сервере: INSERT INTO hosts (host, kod) VALUES ('ааааа', 1)Получаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru