22 个版本
新 0.2.3 | 2024 年 8 月 22 日 |
---|---|
0.2.2 | 2024 年 8 月 20 日 |
0.1.18 | 2024 年 8 月 2 日 |
0.1.17 | 2024 年 7 月 28 日 |
0.1.6 | 2024 年 6 月 24 日 |
#110 在 GUI
1,013 每月下载量
110KB
2.5K SLoC
wcpopup
Rust 用于 Windows 的上下文/弹出菜单。
支持暗/亮主题以及颜色/大小配置。
- 颜色
- 文本颜色
- 背景颜色
- 边框颜色
- 大小
- 菜单填充
- 菜单项填充
- 字体
- 字体家族
- 大小和粗细
用法
使用 ManuBuilder 创建带有 MenuItems 的菜单,然后调用 Menu.popup_at() 显示菜单。
当点击 MenuItem 时,返回 SelectedMenuItem 数据。
fn example(window_handle: isize) {
let mut builder = MenuBuilder::new(window_handle);
// Using HWND
// let mut builder = MenuBuilder::new_for_hwnd(hwnd);
builder.check("menu_item1", "Fit To Window", true, None);
builder.separator();
builder.text_with_accelerator("menu_item2", "Playlist", None, "Ctrl+P");
builder.text_with_accelerator("menu_item3", "Toggle Fullscreen", None, "F11");
builder.text("menu_item4", "Picture In Picture", None);
builder.separator();
builder.text_with_accelerator("menu_item5", "Capture", None, "Ctrl+S");
builder.separator();
let mut submenu = builder.submenu("submenu1", "Theme", None);
submenu.radio("submenu_item1", "Light", "Theme", true, None);
submenu.radio("submenu_item2", "Dark", "Theme", false, None);
submenu.build().unwrap();
let menu = builder.build().unwrap();
let selected_item = menu.popup_at(100, 100);
// On a separate thread
// async_std::task::spawn(async move {
// let selected_item = menu.popup_at_async(100, 100).await
// });
}
WebView2 可能会接收所有键盘输入而不是其父窗口(#1703).
使用 WebView2,您可能需要启用功能标志。
--enable-features=msWebView2BrowserHitTransparent
快捷键
默认情况下,快捷键仅用于显示可用的快捷键。
使用 "accelerator" 功能将快捷键作为命令处理。
使用此功能,当按下快捷键时,Menu.popup_at() 返回相应的 MenuItem 作为结果。
features = ["accelerator"]
依赖项
~128MB
~2M SLoC