GtkEntry
ユーザーがパスワードを入力する必要がある、があります。
やった
gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE);
純粋なテキストで実際のパスワードの代わりに別の記号を使用しますGtkEtry
が、suプログラムのように、ユーザーがパスワードを入力している間はテキストを表示しないようにします。
これどうやってするの?
ドキュメントのすぐ下gtk_entry_set_visibility
に、gtk_entry_set_invisible_charがあります。これには次の注記があります。
[...] invisible charを0に設定すると、ユーザーはフィードバックをまったく受け取りません。入力時に画面にテキストは表示されません。
あなたがより良いものを見つけることができないならば、あなたはこれをすることができます:
「insert_text」のgtk_entry(または任意のgtk_editable)にシグナルを接続し、charを入力して保存し、最後にg_signal_stop_emission_by_name(G_OBJECT(editable)、 "insert_text");を使用します。チャーを隠す
たとえば、このコードは数字以外の文字を破棄します。
g_signal_connect(G_OBJECT(form->field[i].control), "insert_text", G_CALLBACK(insert_text_handler), GINT_TO_POINTER(form->field[i].type_of));
void insert_text_handler(GtkEditable *editable, const gchar *text, gint length, gint *position, gpointer data)
{
gint i;
switch(GPOINTER_TO_INT(data)) {
case TYPE_DIGIT:
for (i = 0; i < length; i++) {
if (!isdigit(text[i])) {
g_signal_stop_emission_by_name(G_OBJECT(editable), "insert_text");
return;
}
...