gpt4 book ai didi

c - GTK 单选按钮组无法正常工作

转载 作者:行者123 更新时间:2023-11-30 17:37:30 25 4
gpt4 key购买 nike

我在组列表中创建了一组单选按钮,并将回调附加到这些按钮。代码如下:

回调函数:

void set_game_level(GtkWidget *widget,gpointer user_data){
g_print("testing toggle");
}

功能显示设置:

GSList *group;
GtkWidget * levelButton;
levelButton = gtk_radio_button_new_with_label (NULL, "Easy");
gtk_container_add (GTK_CONTAINER (vbox2), levelButton);
group = gtk_radio_button_group (GTK_RADIO_BUTTON (levelButton));
levelButton = gtk_radio_button_new_with_label(gtk_radio_button_group (GTK_RADIO_BUTTON (levelButton)),
"Medium");
gtk_container_add (GTK_CONTAINER (vbox2), levelButton);
levelButton = gtk_radio_button_new_with_label(gtk_radio_button_group (GTK_RADIO_BUTTON (levelButton)),
"Hard");
gtk_container_add (GTK_CONTAINER (vbox2), levelButton);

gtk_signal_connect_object (GTK_RADIO_BUTTON (levelButton), "clicked", G_CALLBACK(set_game_level),NULL);

结果并不符合预期。我假设每当我单击其中一个单选按钮时,它都会启动回调,但似乎有时按钮“简单”会启动,有时按钮“困难”会启动。我可以说火灾事件是不一致的。我的实现是否不正确或缺少任何内容,或者切换仅适用于 2 个小部件或 2 个状态。

最佳答案

您需要在第一个单选按钮上使用 grp = gtk_radio_button_get_group(btn1); 来检索组。对于您想要共享一个标记的所有其他按钮,请使用gtk_radio_button_set_grp (btn234_n, grp);

<小时/>

来自文档:

When an unselected button in the group is clicked the clicked button receives the "toggled" signal, as does the previously selected button. Inside the "toggled" handler, gtk_toggle_button_get_active() can be used to determine if the button has been selected or deselected.

关于c - GTK 单选按钮组无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386194/

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