Сбросить ввод пользователя в tkinter - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь сделать скрипт в tkinter. Полезно знать: я новичок в питоне. Скрипт принимает пользовательский ввод, чтобы найти пользовательский ввод на сервере. В первый раз, когда я запускаю скрипт, он работает нормально, но при попытке найти что-то новое скрипт выдает ошибку: AttributeError: 'str' object has no attribute 'get' Так что я догадываюсь, что пользовательский ввод / кнопку нужно как-то сбросить. И я не понимаю, почему это работает в первый раз, а не во второй раз. Я пытался найти хороший способ сделать это, но мне не удалось. Пожалуйста, помогите новичку.

import requests, re, urllib.request
import tkinter as tk
from tkinter import *
from tkinter import ttk

window = Tk()
window.title("Find answer")
ttk.Label(window, text="What you wanna find: ").pack()
stuff = ttk.Entry(window)
stuff.pack()
frame = Frame(window, width=200, height=50)
frame.pack()
servers = ["192.168.8.3", "192.68.8.2"]

def find():
    global stuff
    stuff = stuff.get()
    stuff = stuff.lower()
    for server in servers:
        f = urllib.request.urlopen("http://"+server+"/find")
        result = f.read().decode('utf-8')
        lab = tk.Label(frame,text="server")
        lab.pack()
        print(server)

def clicked_start():
   find()   

start_btn = ttk.Button(text="Find the stuff", command=clicked_start)
start_btn.pack(fill="none")
window.mainloop()

1 Ответ

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

Я думаю, причина в том, что вы переопределяете вещи

global stuff
stuff = stuff.get()
stuff = stuff.lower()

переменная изначально является объектом ввода, вы переопределяете ее как строку

Попробуйте использовать другую переменную, например

global stuff
stuffcontent = stuff.get()
stuffcontent = stuffcontent.lower()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...