gpt4 book ai didi

c - 从 GtkEntry 获取属性为 "text"的文本

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

当单击按钮时,我需要从一堆 GtkEntries 中获取文本。我创建一个自定义结构并将其传递给按钮的单击回调。我不想使用gtk_entry_get_text(*entry)因为我需要传递 GtkEntries 的结构。

typedef struct{
const gchar* id1;
const gchar* id2;
} EntryData;

static void on_click(GtkWidget *widget,
gpointer data) {

EntryData* d= (EntryData*)data;
printf ("Entry contents: %s\n", d->id1);
printf ("Entry contents: %s\n", d->id2);
}

int main(int argc,char *argv[]) {

// ....
GtkButton *button_create_hp;
GtkEntry *entry_id1;
GtkEntry *entry_id2;


gtk_init(&argc, &argv);

//...... widget and object initialization


gtk_entry_set_text(entry_ssd,"");

gchar *strval1="sl";
gchar *strval2="sl";

g_object_get(G_OBJECT (entry_id1), "text", &strval1,NULL);
g_object_get(G_OBJECT (entry_id2), "text", &strval2,NULL);

EntryData entryData={
.id1= strval1,
.id2= strval2
};


g_signal_connect (button_create_hp, "clicked", G_CALLBACK(on_click),&entryData);


gtk_main();

return 0;
}

我也尝试过 g_object_get_property (G_OBJECT (entry_id), "text", &val);

在这两种情况下,单击按钮时都不会打印更改的值。您能否建议一种获取值并从 GtkEntries

传递值的正确方法

最佳答案

the docs来看不是很明显,但是当您以某种方式修改文本时,它可能会移动到另一个位置,从而使前一个指针无效。

如果您不想将 GtkEntries 传递给结构,则可以在 EntryBuffer 发出 "deleted-text""inserted-text 时更新指针" (或连接到 GtkEntry 的 "notify::text")

关于c - 从 GtkEntry 获取属性为 "text"的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55652382/

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