我如何编写用于从 gtk 条目中的光标删除的代码
how i write a code for delete from cursor in gtk entry
我如何在 gtk 条目中编写从游标中删除的代码
我写代码 当我输入文本时,我从按钮 中删除它。
我尝试从输入游标中只删除一个字符
我使用 g_signal_connect(): 从光标中删除
但在回调(函数)中我不知道该做什么
我使用源代码 https://docs.gtk.org/gtk3/signal.Entry.delete-from-cursor.html
函数void clicked_callback(GtkEntry* entry,GtkDeleteType type,gint count,gpointer user_data)
{
申请代码:
#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include<stdio.h>
void clicked_callback(GtkEntry* entry,GtkDeleteType type,gint count,gpointer user_data)
{
g_print("pressed");
}
int main(int argc, char **argv)
{
gtk_init(&argc,&argv);
GtkWidget *window;
GtkWidget *entry;
GtkWidget *grid;
GtkWidget *button;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window),200,200);
grid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(window),grid);
entry = gtk_entry_new();
gtk_widget_set_name(entry,"newname");
gtk_container_add(GTK_CONTAINER(window),entry);
gtk_grid_attach(GTK_GRID(grid), entry, 0, 0, 5, 1);
button = gtk_button_new_with_label("I");
gtk_grid_attach(GTK_GRID(grid),button, 0, 1, 1, 1);
g_signal_connect_swapped(button, "delete_from_cursor", G_CALLBACK(clicked_callback), entry);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
我找到了答案。此处的代码将在 Python 中,但我将解释其原理,因此希望翻译成 C 不会太难。
您首先需要做的是将一个函数连接到按钮的 clicked
信号。在 Python 中,它看起来像这样:
button = Gtk.Button.new_with_label("I")
button.connect("clicked", button_clicked_function)
在该函数中,您需要调用条目的 delete_from_cursor()
方法,GtkDeleteType
的 CHARS
用于 type
参数,以及 -1
对于 count
参数。 -1
告诉它删除光标 左侧 的 1 个字母,而不是右侧。这是 Python 中的样子:
def button_clicked_function(button):
entry.do_delete_from_cursor(entry, Gtk.DeleteType.CHARS, -1)
我如何在 gtk 条目中编写从游标中删除的代码
我写代码 当我输入文本时,我从按钮
我尝试从输入游标中只删除一个字符
我使用 g_signal_connect(): 从光标中删除
但在回调(函数)中我不知道该做什么
我使用源代码 https://docs.gtk.org/gtk3/signal.Entry.delete-from-cursor.html
函数void clicked_callback(GtkEntry* entry,GtkDeleteType type,gint count,gpointer user_data) {
申请代码:
#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include<stdio.h>
void clicked_callback(GtkEntry* entry,GtkDeleteType type,gint count,gpointer user_data)
{
g_print("pressed");
}
int main(int argc, char **argv)
{
gtk_init(&argc,&argv);
GtkWidget *window;
GtkWidget *entry;
GtkWidget *grid;
GtkWidget *button;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window),200,200);
grid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(window),grid);
entry = gtk_entry_new();
gtk_widget_set_name(entry,"newname");
gtk_container_add(GTK_CONTAINER(window),entry);
gtk_grid_attach(GTK_GRID(grid), entry, 0, 0, 5, 1);
button = gtk_button_new_with_label("I");
gtk_grid_attach(GTK_GRID(grid),button, 0, 1, 1, 1);
g_signal_connect_swapped(button, "delete_from_cursor", G_CALLBACK(clicked_callback), entry);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
我找到了答案。此处的代码将在 Python 中,但我将解释其原理,因此希望翻译成 C 不会太难。
您首先需要做的是将一个函数连接到按钮的 clicked
信号。在 Python 中,它看起来像这样:
button = Gtk.Button.new_with_label("I")
button.connect("clicked", button_clicked_function)
在该函数中,您需要调用条目的 delete_from_cursor()
方法,GtkDeleteType
的 CHARS
用于 type
参数,以及 -1
对于 count
参数。 -1
告诉它删除光标 左侧 的 1 个字母,而不是右侧。这是 Python 中的样子:
def button_clicked_function(button):
entry.do_delete_from_cursor(entry, Gtk.DeleteType.CHARS, -1)