标题 tkinter 界面设计 — 画板
上一次写文章还是7.18号了,到现在快20天没有更新了。也不是因为懒,我学习python的时间并不是很多。只有每天早上或者晚上下班回家才有时间。从上次更新到今天。这20天的时间里,学习了新的内容。就是 tkinter 界面设计。这里对 tkinter 就不过多介绍。先记录一下我学习的第一个软件 —— 画板
首先看一下界面效果。
代码实现
导入需要的模块
from tkinter import *
import tkinter as tk
from tkinter.simpledialog import *
from tkinter.colorchooser import *
采用面向对象的方式,分步实现每个控件的功能。
1、设计主窗口界面
if __name__ == '__main__':
mywindow = Tk()
win_width = 900
win_height = 500
mywindow.geometry(str(win_width) + "x" + str(win_height + 50) + "+200+300")
mywindow.title('画板')
app = DrawApp(master=mywindow)
mywindow.mainloop()
geometry的代码格式是 geometry(“axb+c+d”) 其中“x” 是字母 x
2、创建类,继承 Frame 模块
class DrawApp(Frame):
"""开发画图软件"""
def __init__(self, master=None, bgcolor="white"):
super().__init__(master) # super 父类方法调用
self.master = master
# self.v = StringVar(mywindow) 用于存储变量,方便后面获取笔号,画出不同粗细的图画
self.v = StringVar(mywindow)
# 设置背景颜色,背景色为白色
self.bgcolor = bgcolor
# 设置xy 的初始值
self.x = 0
self.y = 0
# 设置默认前景色,也就是画笔的颜色
self.fgcolor = "red"
self.lastDraw = 0
self.startDrawFlag = False
self.pack()
self.creatwidget()
3、 创建画布,并且依次排列各个组件
def creatwidget(self):
"""创建新的组件"""
# 创建一个绘图区域
self.drawpad = Canvas(mywindow, width=win_width, height=win_height, bg=self.bgcolor)
self.drawpad.pack()
# 创建按钮
btn_start = Button(mywindow, text="开始", width=10, name="start")
btn_start.pack(side="left")
# 这里创建一个多选菜单,可供选择不同粗细的笔号
# 设置变量,存储笔号,方便后面判断不同的笔号,响应不同的程序,做出不同的输出
self.v.se