Форум сайта python.su
Доброго вечера, никак не могу подружить hex-овый askcolor с текстовым Bg, пытался преобразовать ввод с askcolor-а на str, но никак не получается. Может есть какие способы поумнее?
from tkinter import *
from tkinter.colorchooser import askcolor
class App:
def __init__(self, master):
self.master = master
self.master.title(“Васильев ИО-21”)
self.master.geometry(“400x200”)
self.mode = IntVar()
self.mode.set(0)
self.rectangle_id1 = 0
self.rectangle_id2 = 0
menubar = Menu(self.master)
self.master.config(menu=menubar)
color_menu = Menu(menubar, tearoff=0)
color_menu.add_command(label=“Выбрать цвет”, command=self.input_color)
menubar.add_cascade(label=“Цвет”, menu=color_menu)
mode_menu = Menu(menubar, tearoff=0)
mode_menu.add_radiobutton(label=“Закрасить всё”, variable=self.mode, value=0)
mode_menu.add_radiobutton(label=“Закрасить верх”, variable=self.mode, value=1)
mode_menu.add_radiobutton(label=“Закрасить низ”, variable=self.mode, value=2)
menubar.add_cascade(label=“Режим”, menu=mode_menu)
menubar.add_command(label=“Изменить”, command=self.change_color)
menubar.add_command(label=“Очистить”, command=self.clear_color)
self.canvas = Canvas(self.master, bg=“white”)
self.canvas.pack(expand=YES, fill=BOTH)
self.color = “white”
def input_color(self):
color = askcolor(title=“Выберитее цвет”)
if color:
self.color = color
def change_color(self):
if self.mode.get() == 0:
self.canvas.config(bg=self.color)
elif self.mode.get() == 1:
self.rectangle_id1 = self.canvas.create_rectangle(0, 0, self.canvas.winfo_width(), self.canvas.winfo_height()//2, fill=self.color, outline=“”)
elif self.mode.get() == 2:
self.rectangle_id2 = self.canvas.create_rectangle(0, self.canvas.winfo_height()//2, self.canvas.winfo_width(), self.canvas.winfo_height(), fill=self.color, outline=“”)
def clear_color(self):
self.canvas.config(bg=“white”)
self.canvas.delete(self.rectangle_id1)
self.canvas.delete(self.rectangle_id2)
root = Tk()
app = App(root)
root.mainloop()
upd: Есть подозрения, что я не правильно прикрепляю код :0
Отредактировано Men44iK (Июнь 1, 2023 23:30:55)
Офлайн
Используй теги code для передачи кода на форуме
[code python]
тут пиши код
[/code]
>>> from tkinter.colorchooser import askcolor >>> >>> c = askcolor() >>> c ((152.59375, 150.5859375, 84.328125), '#989654') >>> c[1] '#989654' >>>
Отредактировано py.user.next (Июнь 2, 2023 01:08:44)
Офлайн