【问题标题】:How to get the value of an entry in GTK+如何在 GTK+ 中获取条目的值
【发布时间】:2016-03-06 15:48:54
【问题描述】:

我有一个问题需要帮助。我正在制作一个能够使用 DES 或 RSA 加密和解密的 C 程序。为了制作 GUI,主要是因为缺乏更好的选择,我选择了 GTK,但我需要一些关于如何在按下按钮时从条目中存储文本的指导。

因此,如果用户在给定的输入字段中输入内容并按下“加密”,我需要以某种方式存储他写的内容,因为我需要进行实际加密,但找不到合适的命令.我唯一能做的就是将它写入控制台,这并没有什么帮助,而且我需要将实际的加密消息返回到另一个条目。

【问题讨论】:

    标签: c gtk gtkentry


    【解决方案1】:

    使用像 gtkTextView 和这个 GtkEntry 这样的编辑小部件的最佳方式是使用它们的缓冲区从用户输入中获取数据并从后端发送数据。 对于 GtkEntry ,你应该使用 GtkEntryBuffer ,在那里你可以找到播放文本的函数。无论你在这个缓冲区中插入什么,都会出现在 GtkEntry 的 GUI 上。 使用以下函数获取数据和发送, 获取数据 --> "gtk_entry_buffer_get_text ()" 发送数据 --> "gtk_entry_buffer_set_text ()"

    您可以添加标记为发送的按钮并添加回调函数,您可以在其中获取数据或将数据发送到 GtkEntry 或从 GtkEntry 发送数据。

    对于加密,您可以在 GtkEntry 中使用输入提示,您可以在其中选择密码模式,帮助您隐藏您在 GtkEntry 中编写或显示的任何内容。

    【讨论】:

    • 谢谢Shah,最终我得到了一切工作,虽然不是我想要的。从那以后大学毕业了,从那以后就再也不用用它了,但仍然感谢你的帮助。
    • 欢迎您,请不要忘记投票@TamásLehoczky
    【解决方案2】:

    简单,我知道您知道如何在回调中捕获按钮的点击信号:
    1.- 使用gtk_label_get_text 获取用户输入。由于该函数返回一个 const 字符串,因此您需要使用 g_strdup 之类的函数对其进行复制,或者将其保存在另一个缓冲区中以处理加密。
    2.- 加密字符串。
    3.- 用gtk_label_set_text发回加密字符串

    【讨论】:

    • 感谢您的回答!我想问几个问题,因为我前几天才开始使用 GTK,但对我来说还是有点不确定。我有函数static void enter_callback( GtkWidget *widget, GtkWidget *entry ) { const gchar *entry_text; entry_text = gtk_entry_get_text (GTK_ENTRY (entry)); printf ("Entry contents: %s\n", entry_text); } 捕获写入条目的文本。我怎样才能把它寄回去?另外,据我了解,我需要在我编写的函数中进行大部分加密,而不是在主程序中。这是正确的吗?
    • 要发回,请参阅我的答案中的#3。加密由您或第三个库完成...我不确定“不在主程序中”是什么意思。
    • 我的意思是主要功能,对不起。再次感谢您的帮助!
    • 您可以在源代码的任何位置编写它,只要按照您的预期工作并且不会产生段下降或内存泄漏:p,如果解决了,请不要忘记接受 awnser你的主要问题。
    • 再次感谢。我不完全确定如何将其传回,因为 G_CALLBACK 对我来说仍然有点神秘,但我会尝试解决它。​​
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多