Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 01.06.2023
Сообщений: 2

Askcolor в tkinter.colorchooser

01.06.2023, 23:40. Показов 1084. Ответов 3

Студворк — интернет-сервис помощи студентам
Никак не могу подружить hex овый askcolor с текстовым bg, суть задачи изменения цвета фона, но объект change.color наотрез отказывается менять цвет, хотел прописать ему преобразователь hex в str, но никак не получается. Идей нет, прошу о помощи

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.06.2023, 23:40
Ответы с готовыми решениями:

Colorchooser
Здравствуйте! Как сделать чтобы colorchooser сохранял переменную такого типа: "#000040" , а не такого: "{0.0 0.0 64.25}...

Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter?
Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter? Я пишу приложение на kivy но использую ...

Виджеты tkinter и tkinter.ttk (используется Python 3.5.2)
1) Проблема с виджетом Scale (ползунок) модуля tkinter. Я создал ползунок от 1 до 50 (как на первой картинке). По умолчанию стоит на 1....

3
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
01.06.2023, 23:54
Лучший ответ Сообщение было отмечено Men44iK как решение

Решение

Python
1
2
3
4
5
6
7
    def change_color(self):
        if self.mode.get() == 0:
            self.canvas.config(bg=str(self.color[1]))
        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="")
пользуйтесь на здоровье
1
0 / 0 / 0
Регистрация: 01.06.2023
Сообщений: 2
01.06.2023, 23:57  [ТС]
Во блин, не там была собака зарыта, спасибо, сейчас наколдую так же для закрашивания по частям
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
02.06.2023, 00:03
Цитата Сообщение от Men44iK Посмотреть сообщение
не там была собака зарыта
как говорит мой учитель: "собака всегда зарыта там, где надо, просто копать нужно уметь"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2023, 00:03
Помогаю со студенческими работами здесь

Customized ColorChooser
Подскажите плиз как на JPanel добавить ColorChooser по типу этого http://javafx.com/samples/FullScreenSketch/index.html. Я понимаю как...

Как сделать окно tkinter неактивным по нажатии на него. Оверлей на Tkinter
Здравствуйте. Пытаюсь сделать оверлей на tkinter, поскольку многие модули из интернета нерабочее на моем ПК. Уже все готово, кроме одной...

Ошибка при попытке открыть программу через консоль, import tkinter as tk ModuleNotFoundError: No module named 'tkinter'
import tkinter as tk ModuleNotFoundError: No module named 'tkinter' Пытаюсь открыть через py main.py, находясь в директории проекта ...

tkinter
Используя справочную литературу, изучить модуль tkinter. Реализовать класс из предыдущего задания, используя оконный интерфейс и кнопки. ...

Tkinter
Суть в том, что я пишу скрипт, в котором при вводе названия файла, он передает свои данные в отдельные строки окна, а именно в виджет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. fontSize": 18, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations":. . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru