gtk md5计算 极其入门
来源:互联网 发布:insar数据下载 编辑:程序博客网 时间:2024/05/18 02:19
#include <gtk/gtk.h>typedef struct stMd5Info {GtkWidget * source;GtkWidget * present;} MD5_INFO_ST;void compute_md5_msg(GtkWidget * button, MD5_INFO_ST * info){GChecksum * check_sum;GtkTextBuffer * text_buffer;const gchar * msg = gtk_entry_get_text(GTK_ENTRY(info->source));gchar * result;if (!msg || msg[0] == '\0')return;result = g_compute_checksum_for_string(G_CHECKSUM_MD5, msg, -1);text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(info->present));gtk_text_buffer_set_text(text_buffer, result, -1);}void clear_md5_msg(GtkWidget * button, MD5_INFO_ST * info){gtk_entry_set_text(GTK_ENTRY(info->source), "");gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(info->present)), "", -1);}int main(int ac, char ** av){GtkWidget * window;GtkWidget * grid;GtkWidget * button_box;GtkWidget * button_calc, * button_clear;GtkWidget * entry;GtkWidget * label;GtkWidget * md5_text_view;MD5_INFO_ST md5_info;gtk_init(&ac, &av);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_resizable(GTK_WINDOW(window), FALSE);gtk_container_set_border_width(GTK_CONTAINER(window), 10);gtk_widget_set_size_request(window, 300, 400);g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);grid = gtk_grid_new();gtk_container_add(GTK_CONTAINER(window), grid);gtk_grid_set_column_spacing(GTK_GRID(grid), 10);gtk_grid_set_row_spacing(GTK_GRID(grid), 10);label = gtk_label_new("Source:");gtk_widget_set_halign(label, GTK_ALIGN_START);entry = gtk_entry_new();gtk_widget_set_hexpand(entry, TRUE);md5_info.source = entry;gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1);gtk_grid_attach(GTK_GRID(grid), entry, 1, 0, 1, 1);label = gtk_label_new("MD5:");gtk_widget_set_valign(label, GTK_ALIGN_START);gtk_widget_set_halign(label, GTK_ALIGN_START);gtk_grid_attach(GTK_GRID(grid), label, 0, 1, 1, 1);md5_text_view = gtk_text_view_new();gtk_text_view_set_editable(GTK_TEXT_VIEW(md5_text_view), FALSE);gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(md5_text_view), GTK_WRAP_CHAR);gtk_widget_set_hexpand(md5_text_view, TRUE);gtk_widget_set_vexpand(md5_text_view, TRUE);md5_info.present = md5_text_view;gtk_grid_attach(GTK_GRID(grid), md5_text_view, 1, 1, 1, 1);button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_END);gtk_box_set_spacing(GTK_BOX(button_box), 5);button_calc = gtk_button_new_with_label("Calc");button_clear = gtk_button_new_with_label("Clear");gtk_box_pack_start(GTK_BOX(button_box), button_calc, FALSE, FALSE, 2);gtk_box_pack_start(GTK_BOX(button_box), button_clear, FALSE, FALSE, 2);g_signal_connect(button_calc, "clicked", G_CALLBACK(compute_md5_msg), &md5_info);g_signal_connect(button_clear, "clicked", G_CALLBACK(clear_md5_msg), &md5_info);gtk_grid_attach(GTK_GRID(grid), button_box, 0, 2, 2, 1);gtk_widget_show_all(window);gtk_main();return 0;}
看了一段时间的gtk,写了个非常非常小的程序,关键在于可以让界面显示的稍微正常点了。不至于巨丑无比,也算是一个阶段的慰藉,哈哈,贴出来看看了。想办法做个自己的类结构还是很重要啊。要不然就的总是用个结构体去连接信号了。很不友善感觉
- gtk md5计算 极其入门
- GTK入门
- GTK入门
- GTK入门
- GTK入门
- gtk学习笔记-gtk入门
- MD5计算
- md5计算
- MD5计算
- 计算MD5
- GTK的入门使用
- python gtk入门
- qt creater gtk 入门
- GTK编程入门
- 【GTK】GTK入门资料(超赞)
- GTK+编程入门(2)—GTK+程序结构
- 计算MD5最快代码
- Java MD5值计算
- 设置QPushButton的背景图片
- 基于文件过滤驱动的透明加密那点事儿
- windows8开发学习笔记
- Mysql源码分析最新的5.6版本-每日更新中......
- 黑客英雄网常见问题解答
- gtk md5计算 极其入门
- MAC下Android的Eclipse开发环境的搭建
- 动态链接库基础
- hdu 3954 Level up(线段树)
- 双向链表初步
- 【字符串操作】02.删除字符串中的空格和数字
- H面试程序(0):字符串一些常用函数的实现
- 黑马程序员------.Net基础之接口
- 黑马程序员__JAVA项目分析__银行业务调试系统