Tkinter get()无法正常工作

时间:2018-06-20 09:23:32

标签: python-3.x tkinter

我正在尝试做一个小型的GUI应用程序,用户可以在其中选择一个文档并选择一个类。但是我遇到的问题是,当我选择一个文件并将其放在文本框中时,get()运行得很好,但是当用户没有选择任何内容时,我并没有得到“空白”打印。这是我的代码:

import tkinter
from tkinter import ttk
import os
from tkinter import filedialog

class Aplicacion():
    def __init__(self):
        self.root = tkinter.Tk()
        self.root.title("Missclassification")
        self.root.resizable(0,0)
        self.root.geometry("500x90")

        #initialize buttons
        self.explorerBtn = ttk.Button(self.root, text="Select file", padding=(10,10), command = self.explore)
        self.explorerBtn.grid(column=1, row=0)
        self.saveBtn = ttk.Button(self.root, text="Save", padding=(10,10), command=self.save)
        self.saveBtn.grid(column=1, row=3)

        #initialize text
        self.txt = tkinter.Text(self.root, height=1.5, width=40, state = tkinter.DISABLED)
        self.txt.grid(column=0,row=0)

        #initialize option menu
        optionList = ('class 1', 'class 2', 'class 3', 'class 4', 'class 5')
        self.v = tkinter.StringVar()
        self.v.set(optionList[0])
        self.options = tkinter.OptionMenu(self.root, self.v, *optionList)
        self.options.grid(column=0, row=3)

        self.root.mainloop()

    def explore(self):
        options = {}
        options['initialdir'] = '{0}'.format(os.path.expanduser('~'))
        options['filetypes'] = [('all files', '.*'), ('PDF files', '.pdf', '.PDF')]
        options['title'] = 'PDF files'
        options['defaultextension'] = '.pdf'
        filenames = filedialog.askopenfilename(parent=self.root, **options)
        self.filelist = self.root.tk.splitlist(filenames)
        self.txt.config(state = tkinter.NORMAL)
        for elem in self.filelist:
            self.txt.insert(tkinter.INSERT,os.path.basename(elem) + "\n")
            self.file = elem
        self.txt.config(state = tkinter.DISABLED)


    def save(self):
        if not self.txt.get("1.0", tkinter.END):
            print("blank")
        else :
            print(str(self.txt.get("1.0", tkinter.END)))
        self.txt.config(state = tkinter.NORMAL)
        #Do things...
        #Clear all..
        self.txt.delete('1.0', tkinter.END)
        #self.txt.insert(tkinter.INSERT, "SAVED")
        self.txt.config(state = tkinter.DISABLED)


if __name__ == '__main__':
    Aplicacion()

有什么线索为什么还不给我东西呢?我已经阅读了一些相关的问题,但是答案对我不起作用。谢谢。

0 个答案:

没有答案