書初め企画、参加しようと思ったものの、手書きでは字の下手さ加減が際立ってしまう、かといって単にペイントで描くのも味気ない。
ということで、
でいくことにした。
tkinter というライブラリを使うとお絵かきプログラムが簡単に作れるらしい、そんなことも出来るのか。例によって写経のようにコードを移して、せっかくなので書初め用に少しだけ設定を変える。
短冊型のウインドウが黒の太字で出るようにした。そんだけ。
一回書いたものを消して書き直す機能とかは一切ないので、ある意味書初めっぽい。
そんな感じでやっていこうかと。
企画のお陰で何とか三が日をお正月っぽいネタで通すことが出来た。
ありがたやありがたや。
以下メモ:
tkinterのインストール
$ sudo apt-get install python3-tk
インストールの確認
$ python3 -m tkinter
書初めプログラム
import tkinter
class Scribble:def on_pressed(self, event):
self.sx = event.x
self.sy = event.yself.canvas.create_oval(self.sx, self.sy, event.x, event.y,
outline = self.color.get(),
width = self.width.get())
def on_dragged(self, event):self.canvas.create_line(self.sx, self.sy, event.x, event.y,
fill = self.color.get(),
width = self.width.get())self.sx = event.x
self.sy = event.y
def create_window(self):window = tkinter.Tk()
self.canvas = tkinter.Canvas(window, bg = "white",
width = 300, height = 900)
self.canvas.pack()
quit_button = tkinter.Button(window, text = "quit",
command = window.quit)
quit_button.pack(side = tkinter.RIGHT)
self.canvas.bind("<ButtonPress-1>", self.on_pressed)
self.canvas.bind("<B1-Motion>", self.on_dragged)
COLORS = ["red", "green", "blue", "#FF00FF", "black"]
self.color = tkinter.StringVar() self.color.set(COLORS[4]) b = tkinter.OptionMenu(window, self.color, *COLORS) b.pack(side = tkinter.LEFT)
self.width = tkinter.Scale(window, from_ = 1, to = 15,
orient = tkinter.HORIZONTAL) self.width.set(12) self.width.pack(side = tkinter.LEFT)return window;
def__init__(self):
self.window = self.create_window();
def run(self):self.window.mainloop()
Scribble().run()