我正在使用gtk-rs
构建一个小应用程序,我正在为改变页面上显示的小部件而挣扎,到目前为止,我一直在使用this guide,但我还没有找到我要寻找的信息。
例如,您打开应用程序并从登录页面开始,然后单击一个按钮,它会将您带到另一个页面/视图,其中包含不同的小部件。
我知道如何用一组小部件构建一个页面,我可以更新这些小部件的内容,但我不知道如何加载一个全新的布局或删除小部件并替换它们。
有没有人有一个链接到一个指南或类似的东西来详细说明如何做到这一点?如果这不是我们应该用gtk-rs
来做这件事的方式,你能告诉我一些详细说明我们应该如何做这件事的东西吗?
我一直在谷歌上搜索像gtk-rs redraw window
,gtk-rs change widgets
,gtk-rs new view
这样的东西,但是这些都没有返回如何处理这个问题的解释。
下面是指南中的一个例子。假设我们在这个应用程序中按下了按钮,我想加载一个带有不同按钮的页面。
fn main() {
// Create a new application
let app = Application::builder().application_id(APP_ID).build();
// Connect to "activate" signal of `app`
app.connect_activate(build_ui);
// Run the application
app.run();
}
fn build_ui(app: &Application) {
// Create a button
let button = Button::builder()
.label("Press me!")
.margin_top(12)
.margin_bottom(12)
.margin_start(12)
.margin_end(12)
.build();
// Connect to "clicked" signal of `button`
button.connect_clicked(move |_| {
println!("The button was pressed!");
});
// Create a window
let window = ApplicationWindow::builder()
.application(app)
.title("My GTK App")
.child(&button)
.build();
// Present window
window.present();
}
1条答案
按热度按时间mf98qq941#
我使用
Stack
来实现这个目的。在这里,看看这个link。使用StackPage
来添加页面。这里有一个例子。
你也可以通过设置
Stack
的可见子名称来切换页面,这样你就不需要StackSwitcher
了。