'How to define the pen width in the menu bar
I am trying to write the code for my own paint program. I have added the menu for few basic color options. Now I would like to add the same menu style pen width option (e.g. 5, 10, according to the user's choice). But I'm stuck here. Please advise, Thanks!
Here I am importing libraries
from tkinter import *
import tkinter as tk
from tkinter import Tk, Canvas, Frame, BOTH
import turtle
current_x, current_y = 0,0
color = 'black'
width = 10
Then Define functions
def locate_xy(event):
global current_x, current_y
current_x, current_y = event.x, event.y
def addLine(event):
global current_x, current_y
canvas.create_line((current_x, current_y, event.x, event.y), fill=color, width=width)
current_x, current_y = event.x, event.y
def show_color(new_color):
global color
color = new_color
def new_canvas():
canvas.delete('all')
display_pallete()
Plot Canvas and setup menus
root = Tk()
canvas = Canvas()
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
menubar = Menu(root)
root.config(menu = menubar)
submenu = Menu(menubar, tearoff=0)
Here I define menu lines and here I am stuck
menubar.add_cascade(label='File', menu=submenu)
submenu.add_command(label='Novo okno', command=new_canvas)
submenu.add_command(label='Velikost')
**submenu.add_command(label='5', command=width)** ?????????
canvas=Canvas(root, background='white')
canvas.grid(row=0,column=0, sticky='nsew')
canvas.bind('<Button-1>',locate_xy)
canvas.bind('<B1-Motion>', addLine)
Here is the color pallete
def display_pallete():
id = canvas.create_rectangle((10, 10,30,30), fill='black')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('black'))
id = canvas.create_rectangle((10, 40,30,60), fill='gray')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('gray'))
id = canvas.create_rectangle((10, 70,30,90), fill='brown4')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('brown4'))
id = canvas.create_rectangle((10, 100,30,120), fill='red')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('red'))
id = canvas.create_rectangle((10, 130,30,150), fill='orange')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('orange'))
id = canvas.create_rectangle((10, 160,30,180), fill='yellow')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('yellow'))
id = canvas.create_rectangle((10, 190,30,210), fill='green')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('green'))
id = canvas.create_rectangle((10, 220,30,240), fill='blue')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('blue'))
id = canvas.create_rectangle((10, 250,30,270), fill='purple')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('purple'))
id = canvas.create_rectangle((10, 280,30,300), fill='darkred')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('darkred'))
id = canvas.create_rectangle((10, 310,30,330), fill='coral')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('coral'))
id = canvas.create_rectangle((10, 340,30,360), fill='orangered')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('orangered'))
id = canvas.create_rectangle((10, 370,30,390), fill='lawngreen')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('lawngreen'))
id = canvas.create_rectangle((10, 400,30,420), fill='limegreen')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('limegreen'))
id = canvas.create_rectangle((10, 430,30,450), fill='springgreen')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('springgreen'))
id = canvas.create_rectangle((10, 460,30,480), fill='seagreen')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('seagreen'))
id = canvas.create_rectangle((10, 490,30,510), fill='cyan')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('cyan'))
id = canvas.create_rectangle((10, 520,30,540), fill='teal')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('teal'))
id = canvas.create_rectangle((10, 550,30,570), fill='powderblue')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('powderblue'))
id = canvas.create_rectangle((10, 580,30,600), fill='navy')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('navy'))
id = canvas.create_rectangle((10, 610,30,630), fill='slateblue')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('slateblue'))
id = canvas.create_rectangle((10, 640,30,660), fill='lavender')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('lavender'))
id = canvas.create_rectangle((10, 670,30,690), fill='violet')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('violet'))
id = canvas.create_rectangle((10, 700,30,720), fill='darkviolet')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('darkviolet'))
id = canvas.create_rectangle((10, 730,30,750), fill='peru')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('peru'))
id = canvas.create_rectangle((10, 760,30,780), fill='white')
canvas.tag_bind(id, '<Button-1>', lambda x: show_color('white'))
display_pallete()
# Open window having dimension 100x100
root.geometry('2000x1000')
root.configure(bg='aqua')
root.title("Risalni stroj")
root.mainloop()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
