2016-03-06 90 views
0

我遇到了一個問題,我需要幫助。我正在製作一個C程序,可以使用DES或RSA進行加密和解密。對於製作圖形用戶界面,主要是因爲缺少更好的選項,我使用GTK,但我需要一些關於如何通過按下按鈕來存儲條目中的文本的指導。如何獲得GTK +中條目的值

因此,如果用戶鍵入某個給定的輸入字段並按下「加密」,我需要以某種方式存儲他寫的內容,因爲我需要進行實際加密,但找不到合適的命令這個。我唯一能做的就是將它寫入控制檯,這不是很有用,另外我需要將實際的加密消息返回到另一個Entry。

回答

0

簡單,我知道您知道如何在您的回調中捕獲按鈕的單擊信號:
1.-通過gtk_label_get_text獲取用戶輸入。由於該函數返回一個常量字符串,因此您需要使用g_strdup等函數複製它,或將其保存在另一個緩衝區中以處理加密。
2.-加密字符串。
3.-發回加密的字符串gtk_label_set_text

+0

謝謝你的回答!我想問幾個問題,因爲我前幾天纔開始使用GTK,而且對我來說還是有點兒麻煩。我有函數'static void enter_callback(GtkWidget * widget, GtkWidget * entry) { const gchar * entry_text; entry_text = gtk_entry_get_text(GTK_ENTRY(entry)); printf(「條目內容:%s \ n」,entry_text); }',它捕獲寫入條目的文本。我怎樣才能發回它?另外,據我所知,我需要在我編寫的函數中進行大部分加密,而不是在主程序中。它是否正確? –

+0

要回復,請參閱我的答案#3。加密是由你或第三個庫完成的...我不確定你的意思是什麼「不在主程序中」。 – Joel

+0

我的意思是主要功能,對不起。再次感謝您的幫助! –

0

的最佳方式與編輯控件像gtkTextView,這對GtkEntry中工作,用自己的緩衝區從用戶輸入獲取數據,並從後端發送數據。 對於GtkEntry,你應該使用GtkEntryBuffer,在那裏你可以找到函數來玩文本。無論你在這個緩衝區中插入什麼,都會出現在GtkEntry的GUI上。以下爲獲取數據和發送, 獲取數據的功能 使用 - >「gtk_entry_buffer_get_text()」 發送數據 - >「gtk_entry_buffer_set_text()」

您可以添加按鈕標記爲發送和添加回調函數您可以獲取數據或將數據發送到GtkEntry或從中發送數據。

同樣對於加密,您可以在GtkEntry中使用輸入提示,您可以在其中選擇密碼模式,以幫助您隱藏您在GtkEntry中編寫或顯示的任何內容。

+0

謝謝沙阿,最終我得到了一切工作,儘管不完全如我所願。大學畢業後,自那之後就不用再使用它了,但感謝你的幫助。 –

+0

歡迎您,請不要忘記投票@TamásLehoczky –