基于GTK3.0的任务管理器

这是一个使用GTK3.0库编写的任务管理器程序,包含获取进程信息、显示CPU和内存使用情况、处理进程结束等功能。通过创建菜单项、响应事件以及绘制系统资源图表来提供用户交互界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#define GTK_ENABLE_BROKEN
#include<gtk/gtk.h>
#include<stdio.h>
#include"dirent.h"
#include"unistd.h"
#include"sys/file.h"
#include"fcntl.h"
#include"string.h"
#include"time.h"
#include"math.h"
#include<stdlib.h>
#include<sys/time.h>
#include<gdk/gdk.h>

#define PMAX     100 //最大进程数目

enum//进程界面的枚举类型
{
	NAME_COLUMN,//进程名列
	NP_COLUMNS
};

int USER,NICE,SYSTEM,IDLE;

char *title=" 进程信息 ";

gint s_total = 0;
gint r_total = 0;	
gdouble pfuser[PMAX];
gdouble rate = 0;//cpu 使用率	

GtkWidget *window;//主窗口
GtkWidget *notebook;//notebook控件
GtkWidget *vbox;
GtkWidget *hbox;

GtkWidget *label;
GtkWidget *mem_bar;
GtkWidget *cpu_bar;
GtkWidget *swap_bar;

GtkWidget *info_label;
GString   *info;
GtkWidget *status_bar0;
GtkWidget *mem_label;
GtkWidget *swap_label;

GtkWidget *scrolled_window;

GtkListStore *process_store;

GtkWidget *ptree_view;

GtkCellRenderer *renderer;//用于显示tree view中的每个列标题
GtkCellRenderer *drenderer;
GtkCellRenderer *mrenderer;
GtkTreeViewColumn *column;//tree view控件列数
GtkTreeViewColumn *dcolumn;
GtkTreeViewColumn *mcolumn;
GtkWidget *pdelete_button; //刷新进程按钮和结束进程按钮
GtkWidget *main_vbox;
GtkWidget *bbvbox;


GtkWidget *table;

GtkWidget *table1;//定义表格

GtkWidget *frame;//定义框架

GtkWidget *frame0;


GtkWidget *button[6],*cpu_rate_label,*process_label,*mem_rate_label,*swap_rate_label,*time_label,*s_label,*r_label,*uptime_label;//定义标签

gint length;

GtkWidget *CreateMenuItem(GtkWidget *,char *);//创建菜单项函数

GtkWidget *CreateMenuFile(GtkWidget *);//创建菜单File函数

GtkWidget *CreateMenuShutDown(GtkWidget *);//创建菜单Shutdown函数

GtkWidget *CreateMenuHelp(GtkWidget *);//创建菜单Help函数

void show_dialog (gchar *, gchar *);
void get_cpu_info (GString *);
void draw_cpu_load_graph (void);
void draw_mem_load_graph (void);
 
gint uptime(void);//计算系统开机时间和运行时间

gint mem_timeout(void);//

gint pro_timeout(void);//

gint sys_time(void);//计算系统时间

void get_process_info (GtkListStore *);
void get_disk_info (GtkListStore *);
void prefresh_button_clicked2 (gpointer data);
void pdelete_button_clicked (gpointer data);

void notebook_pro_init(void);//进程页面初始化

int select_name(char name[]){
	int i;
	for(i=0;name[i]!=0;i++)
		if(i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值