Python 3中的tkinter输入和输出

时间:2017-03-31 20:33:09

标签: python-3.x tkinter

我一直在使用 tkinter 创建 gui

我希望从用户接收文件名作为输入,打开文件并显示一个消息框,其中包含由函数生成的文本。

以下是代码,有人可以解释为什么这不起作用吗?

   import tkinter as tk
   import csv
   import tkinter.simpledialog
   import tkinter.messagebox
   from tkinter import ttk

   file=tkinter.simpledialog.askstring("File: ","Enter your file name")

   with open(file, 'r') as f: #this line reads the file
    reader = csv.reader(f, delimiter=',')

   output=values
   def values(): #And this is the function
    print("Some text")#which should return whatever info is inside 'print' function


   def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    self.controller = controller
    button = ttk.Button(self, text="Submit", #I prefer using the button but any other way will do
                       command=tkmessagebox.showinfo("Results",output))
    button.pack()

我得到“名字'tksimpledialog'未定义”错误。

1 个答案:

答案 0 :(得分:2)

你需要一个窗口让a​​skstring函数起作用:

...
window = tk.Tk()
window.withdraw() #hides the window
file = tkinter.simpledialog.askstring("File: ","Enter your file name")
...

然后您的行存在一些问题:

output=values

它应该放在函数定义之后,而不是之前。 并在末尾包含括号。喜欢:

def values(): #And this is the function
    print("Some text")
    # which should return whatever info is inside 'print' function
output=values()

这解决了我在尝试运行脚本时遇到的错误。