gpt4 book ai didi

c - 如何更改 Gtk2 条目中的字段背景颜色?

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:13 25 4
gpt4 key购买 nike

在 Win7 上使用 Code::Blocks 在 C 中使用 GTK+ v2。

我正在使用“insert_text”信号回调输入小部件。

在回调函数中,如何更改输入字段的背景颜色?

我认为这与更改小部件颜色不同。

我的代码:

回调...

static void VerifyDOW (GtkEntry    *entry,
const gchar *text,
gint length,
gint *position,
gpointer data)
{
GtkEditable *editable = GTK_EDITABLE(entry);
const gchar *result = gtk_editable_get_chars (editable, 0, -1); // = g_new (gchar, length);
int i, count = strlen(result);

for (i=0; i < count; i++) {
if ((! isdigit(result[i])) & (result[i] != ',')) {
i = count;
g_signal_handlers_block_by_func (G_OBJECT (editable), G_CALLBACK (VerifyDOW), data);

/* CHANGE FIELD, NOT WIDGET, COLOR HERE */

g_signal_handlers_unblock_by_func (G_OBJECT (editable), G_CALLBACK (VerifyDOW), data);
}
}
g_signal_stop_emission_by_name (G_OBJECT (editable), "insert_text");
g_free (result);
}

现在在 Main() 中...

        entry = gtk_entry_new();
gtk_widget_set_tooltip_text (entry, "Valid input, 1..7 and ,");
gtk_entry_set_text(GTK_ENTRY(entry), "1,3,5");

g_signal_connect(G_OBJECT(entry), "insert_text", g_CALLBACK(VerifyDOW), NULL);

gtk_table_attach(GTK_TABLE(table), entry...

谢谢,马克。

最佳答案

尝试 gtk_widget_modify_base:

GdkColor color = {0, 255<<8, 220<<8, 220<<8};
gtk_widget_modify_base(GTK_WIDGET(entry), GTK_STATE_NORMAL, &color);

关于c - 如何更改 Gtk2 条目中的字段背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56767206/

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