如何用c语言做出app

🏷️ bt365体育投注网 📅 2025-08-06 10:04:59 👤 admin 👀 7865 ❤️ 907
如何用c语言做出app

#include

GtkWidget *text_view;

GtkTextBuffer *text_buffer;

void on_open_button_clicked(GtkWidget *widget, gpointer data) {

GtkWidget *dialog;

dialog = gtk_file_chooser_dialog_new("Open File", GTK_WINDOW(data), GTK_FILE_CHOOSER_ACTION_OPEN,

"_Cancel", GTK_RESPONSE_CANCEL, "_Open", GTK_RESPONSE_ACCEPT, NULL);

if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {

char *filename;

filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));

gchar *content;

g_file_get_contents(filename, &content, NULL, NULL);

gtk_text_buffer_set_text(text_buffer, content, -1);

g_free(content);

g_free(filename);

}

gtk_widget_destroy(dialog);

}

void on_save_button_clicked(GtkWidget *widget, gpointer data) {

GtkWidget *dialog;

dialog = gtk_file_chooser_dialog_new("Save File", GTK_WINDOW(data), GTK_FILE_CHOOSER_ACTION_SAVE,

"_Cancel", GTK_RESPONSE_CANCEL, "_Save", GTK_RESPONSE_ACCEPT, NULL);

if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {

char *filename;

filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));

GtkTextIter start, end;

gtk_text_buffer_get_start_iter(text_buffer, &start);

gtk_text_buffer_get_end_iter(text_buffer, &end);

gchar *content = gtk_text_buffer_get_text(text_buffer, &start, &end, FALSE);

g_file_set_contents(filename, content, -1, NULL);

g_free(content);

g_free(filename);

}

gtk_widget_destroy(dialog);

}

void on_clear_button_clicked(GtkWidget *widget, gpointer data) {

gtk_text_buffer_set_text(text_buffer, "", -1);

}

int main(int argc, char *argv[]) {

GtkWidget *window;

GtkWidget *vbox;

GtkWidget *toolbar;

GtkWidget *open_button;

GtkWidget *save_button;

GtkWidget *clear_button;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window), "Simple Notepad");

gtk_window_set_default_size(GTK_WINDOW(window), 600, 400);

g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);

gtk_container_add(GTK_CONTAINER(window), vbox);

toolbar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);

gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 5);

open_button = gtk_button_new_with_label("Open");

g_signal_connect(open_button, "clicked", G_CALLBACK(on_open_button_clicked), window);

gtk_box_pack_start(GTK_BOX(toolbar), open_button, FALSE, FALSE, 5);

save_button = gtk_button_new_with_label("Save");

g_signal_connect(save_button, "clicked", G_CALLBACK(on_save_button_clicked), window);

gtk_box_pack_start(GTK_BOX(toolbar), save_button, FALSE, FALSE, 5);

clear_button = gtk_button_new_with_label("Clear");

g_signal_connect(clear_button, "clicked", G_CALLBACK(on_clear_button_clicked), NULL);

gtk_box_pack_start(GTK_BOX(toolbar), clear_button, FALSE, FALSE, 5);

text_view = gtk_text_view_new();

text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view));

gtk_box_pack_start(GTK_BOX(vbox), text_view, TRUE, TRUE, 5);

gtk_widget_show_all(window);

gtk_main();

return 0;

}

相关推荐