2016-03-06 91 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 –