テキストファイルの保存
import os
import tkinter as tk
from tkinter import filedialog
def save():
root.filename = filedialog.asksaveasfilename(initialdir = "/",title = "Save as",filetypes = [("text file","*.txt")])
with open(root.filename, 'w') as f:
f.write(textbox.get("1.0", tk.END)) #textboxの最初から最後までを保存
root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
tk.Label(text = "文章を入力してください").pack()
textbox = tk.Text(width = 40, height = 10) #入力フォーム
textbox.pack()
tk.Button(text = "名前を付けて保存", command = save).pack() #ボタンの表示
tk.mainloop()
テキストファイルの読み込み
import os
import tkinter as tk
from tkinter import filedialog
def selectfile():
filename = tk.filedialog.askopenfilename(filetypes = [('Text Files', ('.txt'))], initialdir = '/')
if filename != '':
with open(filename) as f:
textdata = f.read()
tk.Label(text = textdata).pack()
root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
tk.Label(text = "テキストファイルを選択してください").pack()
tk.Button(text = "選択", command = selectfile).pack() #ボタンの表示
tk.mainloop()
画像ファイルの読み込み
import os
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk #画像の処理
def selectfile():
filename = tk.filedialog.askopenfilename(filetypes = [('Image Files', ('.gif','.png','.jpg'))], initialdir = '/')
if filename != '':
canvas = tk.Canvas(width = 400, height = 250)
canvas.img = ImageTk.PhotoImage(file = filename)
canvas.pack()
canvas.create_image(0, 0,image = canvas.img, anchor = tk.NW)
root = tk.Tk()
root.geometry("800x600") #ウィンドウサイズ
tk.Label(text = "画像ファイルを選択してください").pack()
tk.Button(text = "選択", command = selectfile).pack() #ボタンの表示
tk.mainloop()
問題:先ほど同様、このプログラムは2回目にファイルを選択すると、1回目の下に追加して表示する仕様になっています。追記ではなくて、上書きで表示するように変更しましょう。
お絵描き
import os
import tkinter as tk
root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
canvas = tk.Canvas(root, bg="white", width = 300, height = 200)
canvas.create_polygon(10, 10, 10, 100, 100, 100, 100, 10, fill="green") #正方形
canvas.create_line(10, 10, 150, 150, fill='red') #直線
canvas.pack()
root.mainloop()
参考:画像の保存
import os
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk #画像の処理
def saveimage():
root.filename = filedialog.asksaveasfilename(initialdir = "/",title = "Save as",filetypes = [("PostScript file","*.ps")])
canvas.postscript(file = root.filename) #psファイルで保存する
root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
canvas = tk.Canvas(root, bg="white", width = 300, height = 200)
canvas.create_polygon(10, 10, 10, 100, 100, 100, 100, 10, fill="green") #正方形
canvas.create_line(10, 10, 150, 150, fill='red') #直線
canvas.pack()
tk.Button(text = "保存", command = saveimage).pack() #ボタンの表示
root.mainloop()
コメント
最新を表示する
NG表示方式
NGID一覧