[英]Show password button on entry in gtk
您可以使用set_icon_from_
函數將圖標放入 Gtk.Entry,例如set_icon_from_name
。
因此,需要將圖標設置為例如view-reveal-symbolic.symbolic
圖標,使用set_icon_activatable
使其可點擊,然后在icon-press
事件的信號處理程序中,您需要set_visibility來隱藏或顯示文本(以及還將圖標更改為view-conceal-symbolic.symbolic
之類的東西)。
所以 Gtk.Entry 可能看起來像這樣
GtkWidget *entry = gtk_entry_new();
gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(entry),
GTK_ENTRY_ICON_SECONDARY,
"view-reveal-symbolic.symbolic");
gtk_entry_set_icon_activatable(GTK_ENTRY(entry), GTK_ENTRY_ICON_SECONDARY, TRUE);
g_signal_connect(entry, "icon-press", G_CALLBACK (on_icon_press), NULL);
和信號處理程序
void on_icon_press(GtkWidget *widget, gpointer data) {
gboolean visible = gtk_entry_get_visibility(GTK_ENTRY(widget));
if (visible) {
gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widget),
GTK_ENTRY_ICON_SECONDARY,
"view-reveal-symbolic.symbolic");
} else {
gtk_entry_set_visibility(GTK_ENTRY(widget), TRUE);
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widget),
GTK_ENTRY_ICON_SECONDARY,
"view-conceal-symbolic.symbolic");
}
}
你會得到這樣的東西:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.