add callback to add row to slint ui
This commit is contained in:
+19
-1
@@ -1,7 +1,9 @@
|
||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||
|
||||
use std::error::Error;
|
||||
mod rutracker;
|
||||
use slint::{ModelRc, StandardListViewItem, VecModel};
|
||||
use std::error::Error;
|
||||
use std::rc::Rc;
|
||||
|
||||
slint::include_modules!();
|
||||
|
||||
@@ -13,6 +15,22 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
let _response = rutracker::search(&text);
|
||||
});
|
||||
|
||||
let table_vec: Vec<ModelRc<StandardListViewItem>> = vec![];
|
||||
let table_model = Rc::new(VecModel::from(table_vec));
|
||||
|
||||
let test = "test";
|
||||
ui.set_table_data(table_model.to_owned().into());
|
||||
ui.on_add_row({
|
||||
move || {
|
||||
table_model.push(VecModel::from_slice(&[
|
||||
StandardListViewItem::from(slint::SharedString::from(test)),
|
||||
//StandardListViewItem::from("<new>"),
|
||||
]));
|
||||
}
|
||||
});
|
||||
|
||||
ui.run().unwrap();
|
||||
|
||||
ui.run()?;
|
||||
|
||||
Ok(())
|
||||
|
||||
+12
-12
@@ -6,6 +6,9 @@ export component AppWindow inherits Window {
|
||||
|
||||
in-out property <string> search-text: "";
|
||||
callback request-text-input(string);
|
||||
|
||||
in-out property <[[StandardListViewItem]]> table-data;
|
||||
callback add-row();
|
||||
VerticalBox {
|
||||
alignment: stretch;
|
||||
// width: 50%;
|
||||
@@ -20,7 +23,7 @@ export component AppWindow inherits Window {
|
||||
}
|
||||
|
||||
HorizontalBox {
|
||||
StandardTableView {
|
||||
table := StandardTableView {
|
||||
// width: 230px;
|
||||
// height: 200px;
|
||||
|
||||
@@ -30,17 +33,14 @@ export component AppWindow inherits Window {
|
||||
{ title: "Seeders" },
|
||||
{ title: "Leechers" },
|
||||
];
|
||||
rows: [
|
||||
[
|
||||
{ text: "Item 1" }, { text: "Item 2" },
|
||||
],
|
||||
[
|
||||
{ text: "Item 1" }, { text: "Item 2" },
|
||||
],
|
||||
[
|
||||
{ text: "Item 1" }, { text: "Item 2" },
|
||||
]
|
||||
];
|
||||
rows: table-data;
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Add row";
|
||||
clicked => {
|
||||
add-row();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user