簡體   English   中英

如何獲得Tkinter條目小部件,使其與普通的python輸入相同

[英]How can I get a Tkinter entry widget to work the same as a normal python input

我正在嘗試獲取Tkinter條目“數據”以使用我設置的所有變量。 現在我正在使用普通的python輸入,但是我正在嘗試將我的項目轉換為GUI項目。 因此,當我取出數據輸入並嘗試將Entry用於數據時,會收到錯誤消息,指出沒有split或sort屬性。 我希望程序的GUI版本與終端版本相同。 這可能嗎? 這是回答問題所需的所有代碼:

# imports
from statistics import mode
from statistics import median
from tkinter import *

# The Code For The GUI
# class that makes the window
class Window(Frame):

   def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master = master
        self.init_window()

    def init_window(self):
        self.master.title("Data Analyzer To Go")
        self.pack(fill=BOTH, expand=1)
        analyzeButton = Button(self, text="Analyze Data")
        dataPrompt = Label(self, text="Please enter your data")
        global data
        data = Entry(self)
        analyzeButton.place(x=150, y=150)
        data.place(x=125, y=125)
        dataPrompt.place(x=125, y=100)

root = Tk()
root.geometry("400x300")
app = Window(root)
root.mainloop()

# variables
data = input("please enter your data set: ")
data = [int(n) for n in data.split(' ')]
data.sort()
dataLength = len(data)
dataInt = list(map(int, data))
dataTotal = sum(dataInt)
dataMean = dataTotal / dataLength
highNumber = max(data)
lowNumber = min(data)
dataRange = highNumber - lowNumber

同樣,我的目標是讓Entry與Input進行相同的操作。 任何幫助是極大的贊賞! 謝謝!

我修改了代碼,以獲取data變量的字符串值。 現在,您在輸入字段中輸入數字,並用空格分隔,當您單擊“分析數據”按鈕時,它會將輸入保存到global data變量中。 按鈕的command方法負責將輸入數據放入該變量中。 這樣,就不再需要使用input線。 我一開始就定義data=''為全局變量。 正如我要指出的那樣,依賴全局變量不是最佳實踐。

data = ''

class Window(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master = master
        self.init_window()

    def init_window(self):
        self.master.title("Data Analyzer To Go")
        self.pack(fill=BOTH, expand=1)
        analyzeButton = Button(self, text="Analyze Data", command=self.getData)
        dataPrompt = Label(self, text="Please enter your data")
        global data
        self.var=StringVar(self)
        e = Entry(self, textvariable=self.var)
        analyzeButton.place(x=150, y=150)
        e.place(x=125, y=125)
        dataPrompt.place(x=125, y=100)
    def getData(self):
        global data
        data = self.var.get()

root = Tk()
root.geometry("400x300")
app = Window(root)
root.mainloop()

# variables
#data = input("please enter your data set: ")
data = [int(n) for n in data.split(' ')]
data.sort()
dataLength = len(data)
dataInt = list(map(int, data))
dataTotal = sum(dataInt)
dataMean = dataTotal / dataLength
highNumber = max(data)
lowNumber = min(data)
dataRange = highNumber - lowNumber

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM