#rust
#Ржавчина
Вопрос:
Пожалуйста! простите мое умение писать по-английски !…
Я подтверждаю sarray
, что значение изменено с помощью моей mycallback1
процедуры. (другая функция …) однако table.draw_cell
это не так !.
Как я могу нарисовать свой массив строк, а массив строк можно изменить с помощью моей функции!
//..omitted
fn mycallback1(sarray : amp;mut [amp;str]) {
let max = 200 * 11;
for n in 0..max {
sarray[n] = "Array ^^^";
}
}
fn main() {
//..omitted;
let mut sarray = [""; 200 * 11];
let max = 200 * 11;
for n in 0..max {
sarray[n] = "array ^";
}
butStock1.set_callback(Box::new(move || mycallback1(amp;mut sarray)));
// Called when the table is drawn then when it's redrawn due to events
table.draw_cell(Box::new(move |ctx, row, col, x, y, w, h| match ctx {
table::TableContext::StartPage => draw::set_font(Font::Helvetica, 14),
table::TableContext::ColHeader => {
let idx = col as usize;
draw_header(amp;format!("{}", tuple[idx]), x, y, w, h);
} // Column titles
table::TableContext::RowHeader => draw_header(amp;format!("{}", row 1), x, y, w, h), // Row titles
table::TableContext::Cell => {
let idx = (row * 11 col) as usize;
println!("Drawn {}", idx);
draw_data( amp;format!("{} {}", sarray[idx], idx), x, y, w, h, table_c.is_selected(row, col),); // Data in cells
}
_ => (),
}));
app.run().unwrap();
}
Комментарии:
1. Пример скриншота нравится! imgur.com/q10vN3n
Ответ №1:
Способ работы fltk заключается в том, что он перерисовывает виджет только тогда, когда установлен флаг «повреждения», например, при нажатии кнопки щелчок устанавливает флаг повреждения в классе button, поэтому fltk перерисует его в следующем кадре.
Таблица также перерисовывается, когда она «повреждена». Изменяя значение в массиве, fltk не может знать, что ему нужно перерисовать таблицу.
Таким образом, вы можете добавить явный вызов перерисовки либо таблицы, либо всего приложения.
butStock1.set_callback(Box::new(move || {
mycallback1(amp;mut sarray);
fltk::app::redraw();
}));
Комментарии:
1. Работает нормально !, однако значение sarray все равно не меняется !.