Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2023 23:20:43

Men44iK
Зарегистрирован: 2023-06-01
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter.colorchooser

Доброго вечера, никак не могу подружить 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)

Офлайн

#2 Июнь 2, 2023 01:02:09

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

tkinter.colorchooser

Используй теги 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version