首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据构建目标,在fltk-rs中使用fltk::osxMenuBar或MenuBar

根据构建目标,在fltk-rs中使用fltk::osxMenuBar或MenuBar
EN

Stack Overflow用户
提问于 2021-01-30 14:24:42
回答 1查看 62关注 0票数 0

我正在用fltk-rs创建一个跨平台的图形用户界面应用。根据我的目标平台(OSX或Windows),我想为我的菜单栏使用不同的结构。如果我的目标是OSX,我的菜单栏我想使用fltk::menu::SysMenuBar,而对于Windows,我想使用fltk::menu::MenuBar

我不想保持代码的不同版本,一个用于Windows,一个用于OSX,这样我就可以在我的菜单中使用不同的结构。

在不创建不同代码库的情况下,有哪些方法可以根据构建目标更改所使用的结构?

代码语言:javascript
复制
use fltk::{app::*, frame::*, image::*, window::*, menu::*};

fn main() {
    let app = App::default().with_scheme(Scheme::Gleam);
    let mut wind = Window::new(100, 100, 400, 300, "Hello from rust");
    
    //if target is Windows
    let menubar = MenuBar::default()

    //if target is OSX
    let menubar = SysMenuBar::default()

    wind.end();
    wind.show();

    app.run().unwrap();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-30 14:47:39

咨询Rust Reference on Conditional Compilation。您可以使用带有target_os选项的#[cfg(...)]属性:

代码语言:javascript
复制
#[cfg(target_os = "windows")]
let menubar = MenuBar::default();

#[cfg(target_os = "macos")]
let menubar = SysMenuBar::default();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65965242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档