Как в Pythonista изменить цвет фона кнопки, нажав на нее?Python

Программы на Python
Ответить
Anonymous
 Как в Pythonista изменить цвет фона кнопки, нажав на нее?

Сообщение Anonymous »

Я пытаюсь написать небольшую игру, используя Pythonista. В игре игроку необходимо выбрать один из шести цветов, с которыми я работаю, а затем нажать выбранную кнопку, чтобы изменить цвет фона с серого на выбранный цвет. Код для нажатия кнопки в Pythonista в основном допускает только один параметр, который должен быть отправителем, однако его можно изменить на несколько параметров, если используется лямбда-функция, но это создает мою ошибку - «объект «кортеж» не имеет атрибута «действие».
Код:

Код: Выделить всё

# Current color is set by the player further back in the code

\\\\\\ Pythonista

# Changes buttons colour to the current color
def guess_tapped(sender, col):
sender.background_color = col

# This creates the row of guess squares. 1st one is displayed then up to
# 7 subsquent ones displayed until the player guesses rightguess
guess = []
for j in range(6):
guess_sq = ui.Button()
guess_sq.frame = (25 + (j * 65), 250, 50, 50)
guess_color = 'lightgray'
guess_sq.background_color = guess_color
guess_sq.hidden = False
guess.append(guess_sq.background_color)
main_view.add_subview(guess_sq)

print(f'Current color1- {current_color}') # This displays the current color
#This should send the request to change the colour of the button
guess[0].action = lambda sender: guess_tapped(sender, current_color)
guess[1].action = lambda sender: guess_tapped(sender, current_color
guess[2].action = lambda sender: guess_tapped(sender, current_color)
guess[3].action = lambda sender: guess_tapped(sender, current_color)
guess[4].action = lambda sender: guess_tapped(sender, current_color)
guess[5].action = lambda sender: guess_tapped(sender, current_color)
Ошибка «Объект «кортеж» не имеет атрибута действия» возникает в первой строке этого последнего раздела и в 7 последующих строках (мне нужно выбрать цвета для 6 кнопок). Я считаю, что проблема в current_color, который представляет собой кортеж RGB. Я безуспешно пытался изменить текущий цвет на шестнадцатеричную строку. Я также пытался разделить переменную current_color на отдельные параметры, то есть по одному для R, G и B, безуспешно. успех
Где я ошибаюсь?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»