2017-09-04 3 views
0

data table을 "재설정"할 수 있기를 원합니다. 어떻게해야합니까?python bokeh 데이터 테이블 행 선택 해제

내 데이터 테이블에 대해 on_change('selected', my_callback) 콜백이 정의되어 있습니다.

def my_callback(self, attr, old, new): 
    ... 

그러나 나는 my_callback 핸들러가 호출 된 후 선정 된 내용을 해제 할 수 아니에요 : 콜백 함수는 다음과 같은 서명이 있습니다.

new['1d'] 또는 old['1d'] 사전을 성공적으로 조작하려고 시도했습니다.

데이터 테이블의 행을 선택 취소하고 아무 것도 선택되지 않은 원래 상태로 돌아가려면 적절한 방법은 무엇입니까?

G 그룹에 similar question이 있지만 답변이 없습니다. 감사합니다.

답변

1

다음은 보케 (bokeh) 적용 예입니다. 나는 당신이 당신의 코드를 정확하게 게시하지 않았기 때문에 당신이 무엇을하려하는지 모른다. 소스에서 선택된 데이터의 선택을 취소하거나 변경하는 열쇠는 전체 오브젝트를 대체해야하거나 변경 사항이 등록되지 않아야한다는 것입니다. 자바 스크립트 콜백을 통해 동일한 기능을 수행 할 수 있습니다.

여기에 관련 예제를 참조하십시오

, Bokeh: DataTable - how to set selected rows

from datetime import date 
from random import randint 
from bokeh.io import curdoc 
from bokeh.layouts import widgetbox 
from bokeh.models import ColumnDataSource 
from bokeh.models.widgets import DataTable, DateFormatter, TableColumn, Button 

output_file("data_table.html") 

data = dict(
     dates=[date(2014, 3, i+1) for i in range(10)], 
     downloads=[randint(0, 100) for i in range(10)], 
    ) 
source = ColumnDataSource(data) 

columns = [ 
     TableColumn(field="dates", title="Date", formatter=DateFormatter()), 
     TableColumn(field="downloads", title="Downloads"), 
    ] 
data_table = DataTable(source=source, columns=columns, width=400, height=280) 

def callback(): 
    source.selected = {'0d': {'glyph': None, 'indices': []}, 
         '1d': {'indices': []}, 
         '2d': {'indices': {}}} 

button = Button(label="Reset all selected cells", button_type="success") 
button.on_click(callback) 

curdoc().add_root(widgetbox(data_table,button))