Kev*_*ony 3 c gtk ubuntu user-interface gtk3
我试图从用户那里获取 4 位数字的输入,但非数字输入是不可接受的。我可以允许用户只在 GtkEntry 框中输入数字值,而不是检查非数字值吗?
GtkWidget *entry_pin;
entry_pin=gtk_entry_new();
gtk_entry_set_max_length (GTK_ENTRY(entry_pin),4);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我在 Ubuntu 上运行。
另一种方法是在回调中停止发射
#include <ctype.h>
void insert_text_event(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data)
{
int i;
for (i = 0; i < length; i++) {
if (!isdigit(text[i])) {
g_signal_stop_emission_by_name(G_OBJECT(editable), "insert-text");
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
回调可以设置为:
g_signal_connect(G_OBJECT(widget), "insert-text", G_CALLBACK(insert_text_event), NULL);
Run Code Online (Sandbox Code Playgroud)