linux下gtk+一个将字符串大写化的小示例
2015-08-02 07:32
796 查看
首先用glade画图形界面:
并且设置gtk元素名称(ID)以及设置事件回调函数。
下面写代码:
GtkEntry有2个更改事件,分别是activate和changed;前者在文本输入控件内按回车时触发,后者当文本控件内部的文本发生变化时触发。
编译完毕执行效果如下:
并且设置gtk元素名称(ID)以及设置事件回调函数。
下面写代码:
#include <gtk/gtk.h> #include <string.h> #define UI_PATH "./entry.ui" #define MAIN_WINDOW "window" #define CHK_EDITABLE "chk_editable" #define CHK_VISIBLE "chk_visible" void editable_toggled(GtkWidget *self,GtkEntry *entry){ //gtk_entry_set_editable(entry,GTK_TOGGLE_BUTTON(self)->active); printf("%s:enter function\n",__func__); gtk_editable_set_editable((GtkEditable*)entry,gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(self))); } void visible_toggled(GtkWidget *self,GtkEntry *entry){ //gtk_entry_set_visibility(entry,GTK_TOGGLE_BUTTON(self)->active); printf("%s:enter function\n",__func__); gtk_entry_set_visibility(entry,gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))); } void entry_changed(GtkWidget *self,gpointer user_data){ gchar *text = (gchar*)gtk_entry_get_text(GTK_ENTRY(self)); printf("%s:text is %s\n",__func__,text); text = g_ascii_strup(text,strlen(text)); gtk_entry_set_text(GTK_ENTRY(self),text); } int main(int argc,char **argv){ GtkWidget *w; GError *error; gtk_init(&argc,&argv); GtkBuilder *builder = gtk_builder_new(); if(!gtk_builder_add_from_file(builder,UI_PATH,&error)){ g_critical("Couldn't load builder file: %s",error->message); g_error_free(error); } w = GTK_WIDGET(gtk_builder_get_object(builder,MAIN_WINDOW)); if(!w){ g_critical("Widget \"%s\" is missing in file %s",MAIN_WINDOW,UI_PATH); } gtk_window_set_title(GTK_WINDOW(w),"clist todo list"); gtk_window_set_default_size(GTK_WINDOW(w),300,100); gtk_window_set_position(GTK_WINDOW(w),GTK_WIN_POS_CENTER_ALWAYS); gtk_container_set_border_width(GTK_CONTAINER(w),5); gtk_builder_connect_signals(builder,NULL); g_object_unref(builder); gtk_widget_show_all(w); gtk_main(); return 0; }
GtkEntry有2个更改事件,分别是activate和changed;前者在文本输入控件内按回车时触发,后者当文本控件内部的文本发生变化时触发。
编译完毕执行效果如下:
相关文章推荐
- linux下gtk+一个将字符串大写化的小示例
- linux下gtk+一个将字符串大写化的小示例
- Linux 初体验之基础篇
- Linux命令小技巧
- Linux下编译安装Mysql 5.5的简单步骤
- Linux syslog日志系统详解
- CentOS下将MySQL 5.1升级到MySQL 5.5的步骤
- linux初学(二十一)之linux软件管理基础之YUM软件管理
- Linux学习笔记
- Linux的SOCKET编程详解
- CentOS下将MySQL 5.1升级到MySQL 5.5的步骤
- Linux下编译安装Mysql 5.5的简单步骤
- Linux
- Linux下查看内存使用情况方法总结
- centos6的yum配置脚本-163的源+epel+rpmforge源
- VMware虚拟机Linux忘记root密码
- RHEL6: how to use Centos6 yum
- Linux调用backtrack函数打印程序崩溃时的调用堆栈
- linux笔记
- iptables WEB服务器配置示例