Здравствуйте, я создаю сетку кнопок с помощью петель и пытаюсь применить к ним разные цвета. Мой код такой:
# Set Colors
colornumber = 24
color = ["red", "blue", "purple", "yellow", "red", "red", "red", "blue", "purple", "yellow", "red", "white", "red", "blue", "purple", "yellow", "red", "red", "red", "blue", "purple", "yellow", "red", "red"]
# Set Lists
z = []
w = []
self.button = {}
# Set Loops
for i in range(4):
for j in range (4):
z.append(i)
w.append(j)
for (a, b, c) in izip_longest (z, w, color):
# Keep Buttons Reference
self.button[(a, b)] = QtWidgets.QPushButton()
self.button[(a, b)].setStyleSheet("background-color: (%s %(c))")
# Add to the Layout
self.grid.addWidget(self.button[(a, b)], a, b)
Итак, a и b печатают значения позиции, а c правильно повторяет мой список цветов.
Теперь я пытаюсь установить цвета на кнопке с помощью setStyleSheet, но не могу заставить ее работать.
Как вы можете видеть в коде, я пытался вызвать их через %s
, но это не работает, возможно, из-за апострофов вокруг ? Есть ли обходной путь?
Спасибо!
Эй, я пробовал так d = 'red' self.button.setStyleSheet("background-color: {d}")
, но, похоже, он тоже не получает соответствующие данные..
У меня это работает :) %s
но второй, который извлекает данные, должен быть вне апострофов..
self.button[(a, b)].setStyleSheet("background-color: %s ;" %c)
я не эксперт PyQt, но почему вы не используете
f"background-color: {c}"
?