8

ファイルを開くことができる Tkinter プログラムを作成しようとしています。これまでのところ、ファイルとドロップダウンメニューのオプションを持つtkウィンドウが開き、クリックすると開くと表示され、ファイルウィンドウが開きますが、実際にそのファイルを開く方法がわかりません

ここに私が試しているコードがあります:

from Tkinter import *
from tkFileDialog import askopenfilename
def openfile():

   filename = askopenfilename(parent=root)
   f = open(filename)
   f.read()

root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Open", command=openfile)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)

root.config(menu=menubar)
root.mainloop()

窓枠はこんな感じ

4

2 に答える 2

17

を行ったときに、すでにファイルを開いていますf = open(filename)。ファイルの内容をコンソールに出力するには、print f.read(). または、ファイルを1行ずつ調べて、次のような内容を印刷します

for line in f:
    print line

ファイルを開いてその内容を UI に出力する方法の例を次に示します。この例が役立つことがわかり、必要なものを正確に示しています。

from Tkinter import Frame, Tk, BOTH, Text, Menu, END
import tkFileDialog 

class Example(Frame):

    def __init__(self, parent):
        Frame.__init__(self, parent)   

        self.parent = parent        
        self.initUI()

    def initUI(self):

        self.parent.title("File dialog")
        self.pack(fill=BOTH, expand=1)

        menubar = Menu(self.parent)
        self.parent.config(menu=menubar)

        fileMenu = Menu(menubar)
        fileMenu.add_command(label="Open", command=self.onOpen)
        menubar.add_cascade(label="File", menu=fileMenu)        

        self.txt = Text(self)
        self.txt.pack(fill=BOTH, expand=1)


    def onOpen(self):

        ftypes = [('Python files', '*.py'), ('All files', '*')]
        dlg = tkFileDialog.Open(self, filetypes = ftypes)
        fl = dlg.show()

        if fl != '':
            text = self.readFile(fl)
            self.txt.insert(END, text)

    def readFile(self, filename):

        f = open(filename, "r")
        text = f.read()
        return text


def main():

    root = Tk()
    ex = Example(root)
    root.geometry("300x250+300+300")
    root.mainloop()  


if __name__ == '__main__':
    main()  

ソース: http://zetcode.com/tkinter/dialogs/

于 2013-05-08T02:44:57.237 に答える
0
import tkinter as tk

from os import *

root = tk.Tk()
root.title("Open file")
os_str_var = tk.StringVar(root)


def get_value_os():
    try:
        print(os_str_var.get())
        tk.Label(root,text=f"{os_str_var.get()}").pack()
        get_os_input = os_str_var.get()
        startfile(f"{get_os_input}")
        tk.Label(root, text=f"Good News! The system can find the path({get_os_input}) 
        specified. ").pack()
        print(f"Good News! The system can find the path({get_os_input}) specified. ")
        return get_os_input
    except:
        tk.Label(root,text="The system cannot find the path specified. ").pack()
        print("The system cannot find the path specified. ")


os_entry = tk.Entry(root,textvariable=os_str_var).pack()
os_button = tk.Button(root,text="Open",command=get_value_os).pack()
root.mainloop()
于 2020-06-28T15:55:18.737 に答える