英文:
How can I increment a variable using GTK4 Button?
问题
我想在点击GTK4按钮时增加counter变量。在我提供的代码片段中,counter
是在一个Fn
闭包中捕获的变量。如何实现这一目标?
英文:
I have the following code excerpt:
let mut counter: u32 = 0;
button.connect_clicked(move |_|
{
counter+=1;
flip_coin(&label)
}
);
I want to increment the counter variable when I click the GTK4 button. How can I achieve this, since in the code excerpt I provided , counter
is a captured variable in a Fn
closure.
答案1
得分: 1
为此,您需要使用Cell
类,并克隆您的元素,以便它可以在按钮的闭包内使用。
小例子:
let counter = Rc::new(Cell::new(0));
button.connect_clicked(clone!(@strong counter => move |_| {
counter.set(counter.get() + 1);
println!("{}", counter.get());
}));
更多详细信息请参考:使用GTK4和Rust进行内存管理
英文:
For this, you need to use the Cell class and to clone your element for it to be used inside the closure of the button.
Small example :
let counter = Rc::new(Cell::new(0));
button.connect_clicked(clone!(@strong counter => move |_| {
counter.set(counter.get() + 1);
println!("{}", counter.get());
}));
More details here: Memory management with GTK4 and Rust
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论