Python GUI接受弹出窗口中的用户输入

时间:2018-08-09 19:38:44

标签: python user-interface tkinter

我正在构建python GUI应用程序。我的所有代码都在工作,并且功能可以从终端进行交互,但是我在努力让初始用户输入在tkinter中工作。最初的用户输入将驱动我的其余功能。我该如何翻译下面的代码以在按钮驱动的tkinter中工作。

import pandas as pd

df = pd.DataFrame(columns=["Stock", "Holding"])
parts = int(input("Enter the number of Stocks you own: "))

for _ in range(parts):
    dp = input("Enter Stock " )
    st = input("Enter number of share you own {} " .format(dp))
    df1 = pd.DataFrame(data=[[dp,st]],columns=["Stock", "Holding"])
    df = pd.concat([df,df1], axis=0)

df.index = range(len(df.index))
print (df)

mylist = df['Stock'].tolist()

print (mylist)

2 个答案:

答案 0 :(得分:0)

请尝试以下链接:http://effbot.org/tkinterbook/tkinter-index.htm,以获取入门帮助。如果您能想到的话,TKinter可能会实现它。从空白开始,尝试不同的事情,实现一些可单击的按钮,然后从那里开始。

在初始化后,按钮将附加有“命令”,因此您可以在此处开始将GUI和实际代码联系在一起。首先将按钮命令设为“ None”(无),以便您对事物有所了解,然后找出要从那里去的地方。

我花了整整一天的时间从TKinter的零知识发展到可以在工作中教其他人,因此,只需在Internet上搜索,搜索您的问题,并在需要时在此处发布更具体的问题即可。这个问题太笼统了,无法提供更多答案,但是我希望您至少可以以此为起点。

答案 1 :(得分:0)

这是一个简单的Tkinter示例,您可以用来询问用户他们有多少库存,然后询问库存名称和数量。回答完所有这些问题后,它将显示在每个标签中。

如果您有任何疑问,请告诉我。

import tkinter as tk[![enter image description here][1]][1]
import tkinter.simpledialog as simpledialog
import pandas as pd


root = tk.Tk()

def do_stuff():
    df = pd.DataFrame(columns=["Stock", "Holding"])
    for _ in range(int(parts.get())):
        dp = simpledialog.askstring("Data input window" , "Enter Stock " )
        st = simpledialog.askstring("Data input window" , "Enter number of share you own {} " .format(dp))
        df1 = pd.DataFrame(data=[[dp,st]],columns=["Stock", "Holding"])
        df = pd.concat([df,df1], axis=0)

    df.index = range(len(df.index))
    mylist = df['Stock'].tolist()

    lbl_df.config(text=df)
    lbl_ml.config(text=mylist)


tk.Label(root, text="Enter the number of Stocks you own: ").grid(row=0, column=0)

parts = tk.Entry(root)
parts.grid(row=1, column=0)

tk.Button(root, text="Submit", command=do_stuff).grid(row=2, column=0)

lbl_df = tk.Label(root, text="")
lbl_df.grid(row=3, column=0)
lbl_ml = tk.Label(root, text="")
lbl_ml.grid(row=4, column=0)

root.mainloop()

最终结果将如下所示:

enter image description here

这只是一个简单的示例,但是您可以使用您的应用程序获得更详细的信息或切割器。