2

GtkEntryユーザーがパスワードを入力する必要がある、があります。

やった

gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE);

純粋なテキストで実際のパスワードの代わりに別の記号を使用しますGtkEtryが、suプログラムのように、ユーザーがパスワードを入力している間はテキストを表示しないようにします。

これどうやってするの?

4

2 に答える 2

3

ドキュメントのすぐ下gtk_entry_set_visibilityに、gtk_entry_set_invisible_charがあります。これには次の注記があります。

[...] invisible charを0に設定すると、ユーザーはフィードバックをまったく受け取りません。入力時に画面にテキストは表示されません。

于 2012-10-19T18:40:43.860 に答える
1

あなたがより良いものを見つけることができないならば、あなたはこれをすることができます:

「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;
                }

...
于 2012-10-19T19:07:50.063 に答える