gpt4 book ai didi

c - 修改几个GTK按钮

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

我有一个有 12 个按钮的键盘。当按下某个按钮时,我希望所有按钮都获得替代标签。如何才能做到这一点,我想我需要使用数组来达到目的?

最佳答案

是的,您需要将按钮存储在某种数据结构中,然后需要将其提供给信号处理程序回调。

通常最好将所有此类状态信息包装在一个结构中,因为它可以很好地扩展:

typedef struct {
GtkWidget *keypad[12];
} GuiData;

然后只需实例化该结构一次,也许是在main()的早期,然后将其传递:

int main(void)
{
GuiData gui;

gui.keypad[0] = gtk_button_new_with_label("1");

/* ... */

g_signal_connect(G_OBJECT(some_widget), "clicked",
G_CALLBACK(cb_some_button_clicked), &gui);
}

注意如何使用 &gui 将指向 GUI 状态结构的指针传递给回调函数,以处理“某个按钮”的点击。

在回调中,您可以访问键盘:

static void cb_some_button_clicked(GtkWidget *object, gpointer user)
{
GuiData *guidata = user;

gtk_button_set_label(GTK_LABEL(guidata->keypad[0], "4711");
}

我现在没有尝试这个,但上面的内容应该大致正确。

关于c - 修改几个GTK按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16295765/

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