gpt4 book ai didi

user-interface - Rust egui 窗口大小和暗模式

转载 作者:行者123 更新时间:2023-12-05 03:25:57 27 4
gpt4 key购买 nike

我正在尝试使用 egui 制作 native gui 应用程序。一段时间后得到 hello_world example编译。
代码如下:

use eframe::{epi, egui};

struct MyEguiApp {
name: String,
age: u32,
}

impl Default for MyEguiApp {
fn default() -> Self {
Self {
name: "Arthur".to_owned(),
age: 42,
}
}
}

impl epi::App for MyEguiApp {
fn name(&self) -> &str {
"Test"
}

fn update(&mut self, ctx: &egui::Context, frame: &epi::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("My egui aplication");
ui.horizontal(|ui|{
ui.label("Your name: ");
ui.text_edit_singleline(&mut self.name);
});
ui.add(egui::Slider::new(&mut self.age,0..=120));
if ui.button("Click each year").clicked() {
self.age += 1;
}
ui.label(format!("Hello '{}', age {}", self.name, self.age));
});
frame.set_window_size(ctx.used_size());
}
}

fn main() {
let app = MyEguiApp::default();
let native_options = eframe::NativeOptions::default();
eframe::run_native(Box::new(app), native_options);
}

但是我有两个问题:
首先:窗口始终为 800x600,除非我手动调整它的大小 pic related
第二:我不知道如何激活黑暗模式

我刚开始学习 Rust,所以如果有人能提供帮助那就太好了。

最佳答案

用这个替换主方法中的“native_options”。

    let options = eframe::NativeOptions {
always_on_top: false,
maximized: false,
decorated: true,
drag_and_drop_support: true,
icon_data: None,
initial_window_pos: None,
initial_window_size: Option::from(Vec2::new(PUT X SIZE HERE as f32, PUT Y SIZE HERE as f32)),
min_window_size: None,
max_window_size: None,
resizable: true,
transparent: true,
vsync: true,
multisampling: 0,
depth_buffer: 0,
stencil_buffer: 0,
};

要设置暗模式,您可以使用内置的暗模式按钮:egui::widgets::global_dark_light_mode_buttons(ui); 或者您可以执行 cc.egui_ctx.set_visuals( egui::Visuals::dark()); 在您的 eframe 中运行 native 函数。

关于user-interface - Rust egui 窗口大小和暗模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71865509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com