rust
复制代码
fn main() -> eframe::Result<()> {
// 配置原生窗口参数
let options = eframe::NativeOptions::default();
// 生成0-99的字符串列表
let keys: Vec<String> = (0..100).map(|i| i.to_string()).collect();
eframe::run_simple_native("菜单", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
load_fonts(&ctx);
// 添加垂直滚动条
egui::ScrollArea::vertical().show(ui, |ui| {
for idx in &keys {
ui.label(idx);
}
});
});
})
}
只绘制可见部分
rust
复制代码
fn main() -> eframe::Result<()> {
// 配置原生窗口参数
let options = eframe::NativeOptions::default();
let keys: Vec<String> = (0..100).map(|i| i.to_string()).collect();
eframe::run_simple_native("菜单", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
load_fonts(&ctx);
// 参数二:每行高度,参数三:行数
egui::ScrollArea::vertical().show_rows(ui, 17., keys.len(), |ui, rng| {
for idx in rng {
ui.label(&keys[idx]);
}
});
});
})
}
滚动条靠右显示
rust
复制代码
fn main() -> eframe::Result<()> {
// 配置原生窗口参数
let options = eframe::NativeOptions::default();
let keys: Vec<String> = (0..100).map(|i| i.to_string()).collect();
eframe::run_simple_native("菜单", options, move |ctx, _frame| {
egui::CentralPanel::default().show(ctx, |ui| {
load_fonts(&ctx);
// 参数二:每行高度,参数三:行数
egui::ScrollArea::vertical().show_rows(ui, 17., keys.len(), |ui, rng| {
ui.set_width(ui.available_width()); // 设置当前ui元素的宽度为当前容器的剩余宽度
for idx in rng {
ui.label(&keys[idx]);
}
});
});
})
}