سلام
من برنامه نصب گرافیکی نرم افزار را بصورت زیر نوشتم و آن را با gcc کامپایل کردم
اما مشکل این است که وقتی button کلیک می شود و برنامه هم نصب می شود ولی در بعضی موارد اگر بعد از انجام نصب دستور
sudo dpkg --configure -a
در ترمینال اجرا شود بعضی از برنامه seting up می شود (بخصوص در مواردی که برنامه libc6 نصب شود )
#include <gtk/gtk.h>
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
gtk_main_quit();
return FALSE;
}
void kkk(GtkWidget *widget,gpointer data)
{
FILE *fp;
gint exit_status;
gchar *command = "gksu -- ";
/* execute command */
fp = popen(command, "r");
if (fp == NULL)
{
g_print("Error running %s", command);
}
exit_status = pclose (fp);
g_print("Script exited with status %d", exit_status);
}
int main(int argc , char *argv[])
{
gtk_init(&argc,&argv);
/*bفهرست اشیا*/
GtkWidget *window;
GtkWidget *button1;
/*bسفارشی کردن اشیا*/
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
button1= gtk_button_new_with_label ("tavasol");
gtk_container_add(GTK_CONTAINER(window),button1);
gtk_window_set_title(GTK_WINDOW(window),"WELCOME TO GTK+");
gtk_widget_set_size_request(GTK_WIDGET(window),450,250);
gtk_window_set_resizable(GTK_WINDOW(window),FALSE);
/*bسیگنال بسته شدن*/
g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(delete_event),NULL);
/*bسیگنال کلیک*/
g_signal_connect(G_OBJECT(button1),"clicked",G_CALLBACK(kkk),NULL);
/*bنمایش اشیا*/
gtk_widget_show(window);
gtk_widget_show(button1);
gtk_main();
return 0;
}