📄 hello.c
字号:
#include <gtk/gtk.h>#include <gmodule.h>
#include "about.h"//#include "hello.h"
//此函数在插件初始化时默认执行void g_module_check_init(GModule *module){ g_print("插件%s初始化成功,已经调入!\n", g_module_name(module)); //create_message_dialog("这是一个测试用的消息对话框。"); //about();}//以下函数当插件缷载时默认执行void g_module_unload(GModule *module){ g_print("插件%s已成功缷载!\n", g_module_name(module));}//创建普通的弹出式消息框
void create_message_dialog(gchar* message)
{
GtkWidget *dialog;
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_INFO ,
GTK_BUTTONS_OK,
message);
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
//以下内容为创建关于对话框
static GtkWidget *window;
void on_ok_clicked(GtkWidget* widget, gpointer data)
{
gtk_widget_destroy(data);
}
void about(void)
{
GtkWidget *vbox, *hbox;
GtkWidget *label, *button, *image, *sep ;
GdkPixbuf *pix;
pix = gdk_pixbuf_new_from_inline(9216+24, my_pixbuf, TRUE, NULL);
//此函数的第一个参数为图像文件的长度,可以在about.h文件的头部中找到
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"关于");
g_signal_connect(G_OBJECT(window),"delete_event",
G_CALLBACK(gtk_widget_destroy),window);
gtk_container_set_border_width(GTK_CONTAINER(window),10);
vbox = gtk_vbox_new(FALSE,0);
gtk_container_add(GTK_CONTAINER(window),vbox);
hbox = gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,5);
image = gtk_image_new_from_pixbuf(pix);
gtk_box_pack_start(GTK_BOX(hbox),image,FALSE,FALSE,5);
label = gtk_label_new("此软件用于测试");
gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,5);
sep = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(vbox),sep,FALSE,FALSE,5);
button = gtk_button_new_from_stock(GTK_STOCK_OK);
g_signal_connect(G_OBJECT(button),"clicked",
G_CALLBACK(on_ok_clicked),(gpointer)window);
gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0);
gtk_widget_show_all(window);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -