Найти - Пользователи
Полная версия: свойства fill, определённое значение палитры.
Начало » GUI » свойства fill, определённое значение палитры.
1
king-live
Доброго времени суток! Только приступил к изучению Python. В программе есть строка
canvas.create_oval(200, 200, 1, 1, fill=“#991010”) свойство fill c форматом #RRGGBB, если не ошибаюсь. В свойство fill можно задать только стандартную палитру из таблицы. Но мне нужно вставить в формат #RRGGBB только своё значение R,G,B из других переменных r,g,b. К примеру значение
RR - переменная r.
GG - переменная g.
BB - переменная b.
Только ни где в Python не описывается как можно это сделать. Подскажите как это можно сделать? Заранее спасибо!
rami
Соответствующую строку кода можно записать так:
 canvas.create_oval(200, 200, 1, 1, fill=f"#{r}{g}{b}")

или так:
 canvas.create_oval(200, 200, 1, 1, fill="#{}{}{}".format(r,g,b))

последней строкой кода должно быть:
 root.mainloop()

root.update() в данном случае не нужен.
king-live
Спасибо, всё работает, но до момента пока значения переменных r,g,b двух значное. Или значение fill
шести значное fill=“991010”. Формат RRGGBB описано как шестнадцатеричное , то есть нулевое значение это 0х00 а последнее значение это 0xFF . Мне нужна область переменной “char” от 0-255. И его шестнадцатеричное представление это 0-ff. Но подставляя такие значения в параметры fill (fill=“FFFFFF”), ничего не работает. Компилятор ругается на неизвестное значение. Это тема не совсем раскрыта в учебниках. Можете мне описать подробный формат, параметров fill ? Спасибо!
rami
king-live
Это тема не совсем раскрыта в учебниках. Можете мне описать подробный формат, параметров fill ?
Про tkinter читайте здесь: Tkinter 8.5 reference: a GUI for Python

Про цвет: 5.3. Colors
king-live
rami
Про цвет: 5.3. Colors
Это я прочёл, и с форматом понятно. Я не могу подставить значение r,g,b в параметры fill.
canvas.create_oval(200, 200, 1, 1, fill=“#00ffff”)-эта строчка работает

r=0x00
g=0xff
b=0xff

#canvas.create_oval(200, 200, 1, 1, fill=f“#{r}{g}{b}”) - эта строчка не работает.
Papa_Svin
 r = 0x00
g = 0xff
b = 0xff
print("#{:02X}{:02X}{:02X}".format(r, g, b))
king-live
Papa_Svin
print(“#{:02X}{:02X}{:02X}”.format(r, g, b))

Что за строчка, и как им пользоваться? Куда его в код вставлять. Я пробовал и вместо fill и в другие места подставлять. Но в моём коде он или даёт синтаксическую ошибку или вообще ничего не даёт.
Papa_Svin
king-live

Зачем тебе это надо? Не парься!

king-live
Papa_Svin
Зачем тебе это надо? Не парься!
Муыкальный фонтан, мне надо передать на RGB плафоны через компьютер, цветовую палитру.
king-live
Вот как я решил эту задачу

 from tkinter import colorchooser
from tkinter import *
from random import *
root = Tk()
canvas = Canvas(root, width=2000, height=1000)
canvas.pack()
r=255
g=0
b=128
canvas.create_oval(200, 200, 1, 1, fill=f'#{r:02x}{g:02x}{b:02x}')
root.mainloop()


тема описывается тут http://programmerz.ru/questions/7705/converting-a-rgb-color-tuple-to-a-six-digit-code-in-python-question.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB