Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » свойства fill, определённое значение палитры. [RSS Feed]

#1 Окт. 14, 2018 21:29:45

king-live
Зарегистрирован: 2018-10-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

Доброго времени суток! Только приступил к изучению 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 не описывается как можно это сделать. Подскажите как это можно сделать? Заранее спасибо!

Прикреплённый файлы:
attachment KrugRGB.py (250 байт)

Офлайн

#2 Окт. 14, 2018 21:47:05

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

Соответствующую строку кода можно записать так:

 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() в данном случае не нужен.

Офлайн

#3 Окт. 14, 2018 22:45:05

king-live
Зарегистрирован: 2018-10-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

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

Отредактировано king-live (Окт. 14, 2018 23:04:58)

Офлайн

#4 Окт. 15, 2018 07:39:42

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

king-live
Это тема не совсем раскрыта в учебниках. Можете мне описать подробный формат, параметров fill ?
Про tkinter читайте здесь: Tkinter 8.5 reference: a GUI for Python

Про цвет: 5.3. Colors

Офлайн

#5 Окт. 15, 2018 08:20:17

king-live
Зарегистрирован: 2018-10-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

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}”) - эта строчка не работает.

Офлайн

#6 Окт. 15, 2018 09:03:36

Papa_Svin
Зарегистрирован: 2018-09-17
Сообщения: 138
Репутация: +  1  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

 r = 0x00
g = 0xff
b = 0xff
print("#{:02X}{:02X}{:02X}".format(r, g, b))

Офлайн

#7 Окт. 15, 2018 09:15:23

king-live
Зарегистрирован: 2018-10-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

Papa_Svin
print(“#{:02X}{:02X}{:02X}”.format(r, g, b))

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

Офлайн

#8 Окт. 15, 2018 09:47:58

Papa_Svin
Зарегистрирован: 2018-09-17
Сообщения: 138
Репутация: +  1  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

king-live

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

Офлайн

#9 Окт. 15, 2018 10:06:28

king-live
Зарегистрирован: 2018-10-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

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

Офлайн

#10 Окт. 15, 2018 21:47:52

king-live
Зарегистрирован: 2018-10-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

свойства fill, определённое значение палитры.

Вот как я решил эту задачу

 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

Офлайн

  • Начало
  • » GUI
  • » свойства fill, определённое значение палитры. [RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version