#widgets #bindings #ui #graphics

fltk-table

fltk-rs 的智能表格小部件

13 个版本

0.3.2 2024 年 8 月 2 日
0.3.1 2023 年 7 月 29 日
0.3.0 2023 年 3 月 31 日
0.2.2 2023 年 3 月 18 日
0.1.6 2021 年 11 月 30 日

GUI 中排名 1173

Download history 31/week @ 2024-04-29 26/week @ 2024-05-06 53/week @ 2024-05-13 91/week @ 2024-05-20 135/week @ 2024-05-27 40/week @ 2024-06-03 16/week @ 2024-06-10 29/week @ 2024-06-17 32/week @ 2024-06-24 5/week @ 2024-07-08 25/week @ 2024-07-15 46/week @ 2024-07-22 107/week @ 2024-07-29 31/week @ 2024-08-05 19/week @ 2024-08-12

每月下载 206
2 crates 中使用

MIT 许可证 MIT

140KB
541 代码行

fltk-table

fltk-rs 的智能表格小部件。它旨在减少创建表格所需的样板代码。

使用方法

[dependencies]
fltk = "1.4"
fltk-table = "0.3"

示例

use fltk::{
    app, enums,
    prelude::{GroupExt, WidgetExt},
    window,
};
use fltk_table::{SmartTable, TableOpts};

fn main() {
    let app = app::App::default().with_scheme(app::Scheme::Gtk);
    let mut wind = window::Window::default().with_size(800, 600);

    /// We pass the rows and columns thru the TableOpts field
    let mut table = SmartTable::default()
    .with_size(790, 590)
    .center_of_parent()
    .with_opts(TableOpts {
        rows: 30,
        cols: 15,
        editable: true,
        ..Default::default()
    });
    
    wind.end();
    wind.show();

    // Just filling the vec with some values
    for i in 0..30 {
        for j in 0..15 {
            table.set_cell_value(i, j, &(i + j).to_string());
        }
    }

    // set the value at the row,column 4,5 to "another", notice that indices start at 0
    table.set_cell_value(3, 4, "another");

    assert_eq!(table.cell_value(3, 4), "another");

    // To avoid closing the window on hitting the escape key
    wind.set_callback(move |_| {
        if app::event() == enums::Event::Close {
            app.quit();
        }
    });

    app.run().unwrap();
}

您可以使用 SmartTable::data() 方法检索数据的副本。

TableOpts 结构也接受单元格和标题的样式元素

let mut table = SmartTable::default(TableOpts {
        rows: 30,
        cols: 15,
        cell_selection_color: Color::Red.inactive(),
        header_frame: FrameType::FlatBox,
        header_color: Color::BackGround.lighter(),
        cell_border_color: Color::White,
        ..Default::default()
    });

image

您还可以使用 set_row_header_value()set_col_header_value() 方法更改行/列标题字符串,这些方法接受所需行/列的索引。

依赖项

~14MB
~305K SLoC