Я делаю сценарий Python с графическим интерфейсом, использующим Tkinter для управления светодиодными полосками с помощью Raspberry Pi.
Полосы подключены к MOSFET, и они подключаются к портам GPIO. которое изменяется значение ШИМ с 0 на 100, вы можете переместить слайдер или ввести значение в значении в поле ввода, и оба меняются при его изменении. Это также автоматически обновляет выходные данные DutyCycle от 0 до 100, так что вы можете полностью размять цвет канала в 100 шагах и увидеть его тусклый при перемещении слайдер. Значение, что выглядит так: < /p>
{214.8359375 215.83984375 214.8359375} #d6d7d6
< /code>
Я могу взять только тройной RGB или только шестигранное значение и поместить его в переменную, но вот где я застрял. /> Но у него все еще есть много десятичных декораций, которые мне не нужно /не хочу.
и 3 значения цвета просто разделены пространствами. Но это дает мне что -то вроде того, что это ожидалось меньше значений, но я думаю, что это потому, что в кортеже нет запятых < /p>
Было бы легче взять значение шестигранного и преобразовать его в разделение значений?def pickcolor1():
(triple1,hexstr1) = askcolor(initialcolor='#000000')
if triple1:
triple1pwm = [x / 255.0 * 100 for x in triple1]
colorlabel1 = Label(mGui,text=triple1pwm).grid(row=14,column=0,columnspan=34)
pickcolorbutton1 = Button(mGui,text='Pick color',width=1,command=pickcolor1).grid(row=13,column=1,columnspan=4,sticky=W+E)
< /code>
Со всеми ползунками Colorpicker до 0 дает это: [0,0, 0,0, 0,0] < /p>
Так что мне также нужно удалить кронштейны? [] < /p>
Со всеми ползунками до 255 он дает: [100.390625, 100.390625, 100.390625] < /p>
Обновление2: < /p>
Я разделенные значения и помещенные на различные этикетки, позже, которые будут вводными помещениями < /p> def pickcolor1():
(triple1,hexstr1) = askcolor(initialcolor='#000000')
if triple1:
triple1pwm = [x / 255.0 * 100 for x in triple1]
colorlabelr1 = Label(mGui,text=triple1pwm[0]).grid(row=14,column=0,columnspan=34)
colorlabelg1 = Label(mGui,text=triple1pwm[1]).grid(row=15,column=0,columnspan=34)
colorlabelb1 = Label(mGui,text=triple1pwm[2]).grid(row=16,column=0,columnspan=34)
print(triple1pwm[0])
print(triple1pwm[1])
print(triple1pwm[2])
pickcolorbutton1 = Button(mGui,text='Pick color',width=1,command=pickcolor1).grid(row=13,column=1,columnspan=4,sticky=W+E)
< /code>
Это работает, теперь нужно только завершить его вниз < /p>
update3: < /p>
Теперь округленное каждое значение вниз и положите его в входное поле,
все еще имеет .0 после значения. < /p>
def pickcolor1():
(triple1,hexstr1) = askcolor(initialcolor='#000000')
if triple1:
triplepwm1 = [x // 2.55 for x in triple1]
pwmr1 = StringVar()
pwmg1 = StringVar()
pwmb1 = StringVar()
pwmr1.set(triplepwm1[0])
pwmg1.set(triplepwm1[1])
pwmb1.set(triplepwm1[2])
pickentryr1 = Entry(mGui,textvariable=pwmr1).grid(row=14,column=0,columnspan=34)
pickentryg1 = Entry(mGui,textvariable=pwmg1).grid(row=15,column=0,columnspan=34)
pickentryb1 = Entry(mGui,textvariable=pwmb1).grid(row=16,column=0,columnspan=34)
print(triplepwm1[0])
print(triplepwm1[1])
print(triplepwm1[2])
pickbutton1 = Button(mGui,text='Pick color',width=1,command=pickcolor1).grid(row=13,column=1,columnspan=4,sticky=W+E)
Подробнее здесь: https://stackoverflow.com/questions/360 ... lor-values
Python: как преобразовать значение RGB или HEX в одноцветные значения ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение