ipysheet вопрос об обновлении атрибута ячейки - PullRequest
0 голосов
/ 27 сентября 2019

Мой код здесь

import ipysheet
mysheet = ipysheet.sheet(rows=2, columns=2)
mysheet
c = cell(0,0,1, background_color = 'red')

Я хочу изменить background_color, я ожидаю сделать что-то подобное

c.background_color = 'yellow'

Или позже

mysheet[0, 0].background_color = 'yellow'

вместо создания нового объекта

c = cell(c.row_start, c.column_start, c.value, background_color = 'yellow')

Простите, если я решу проблему read-doc-for-me .Но я не нашел метода, которого ожидаю.Если нет, кто-нибудь может объяснить?Спасибо

1 Ответ

1 голос
/ 28 сентября 2019

Посмотрев на исходный код метода cell, вы обнаружите, что метод cell возвращает экземпляр класса ipysheet.sheet.Cell.Цвет фона задается как свойство параметра style этого класса.Вы можете динамически изменить это свойство, присвоив значение указанному цвету, если это свойство:

>>> import ipysheet
>>> from ipysheet.easy import cell
>>> mysheet = ipysheet.sheet(rows=2, columns=2)
>>> c = cell(0,0,1, background_color = 'red')
>>> type(c)
ipysheet.sheet.Cell
>>> print(c.style['backgroundColor'])
red
>>> c.style['backgroundColor'] = 'blue'
>>> print(c.style['backgroundColor'])
blue

ОБНОВЛЕНИЕ:

Кажется, что установка свойства для другого значенияне меняет цвет фона листа, потому что виджет листа не может получить состояние динамически.Вы можете обновить состояние, используя send_state() метод экземпляра ячейки:

c.style['backgroundColor'] = 'blue'
c.send_state()

# or by position in mysheet
mysheet[0, 0].style['backgroundColor'] = 'blue'
mysheet[0, 0].send_state()

После этого ячейка листа изменит цвет фона.

...