⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cpp

📁 一个linux进程管理器,具有以下功能: 管理系统的进程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	openFileAction->setMenuText( trUtf8( "\xe6\x89\x93\xe5\xbc\x80\xe7\x9a\x84\xe6\x96\x87\xe4\xbb\xb6\x28\x26\x46\x29" ) );	openFileAction->setAccel( tr( "Ctrl+F" ) );	enew_itemAction->setText( tr( "new item" ) );	enew_itemAction->setMenuText( tr( "new item" ) );	detailAction->setText( trUtf8( "\xe8\xaf\xa6\xe7\xbb\x86\xe4\xbf\xa1\xe6\x81\xaf\x28\x26\x44\x29" ) );	detailAction->setMenuText( trUtf8( "\xe8\xaf\xa6\xe7\xbb\x86\xe4\xbf\xa1\xe6\x81\xaf\x28\x26\x44\x29" ) );	detailAction->setAccel( tr( "Ctrl+D" ) );	Action_2->setText( QString::null );	Action_2->setMenuText( QString::null );	signalAction->setText( trUtf8( "\xe4\xbf\xa1\xe5\x8f\xb7\x28\x26\x47\x29" ) );	signalAction->setMenuText( trUtf8( "\xe4\xbf\xa1\xe5\x8f\xb7\x28\x26\x47\x29" ) );	signalAction->setAccel( tr( "Ctrl+G" ) );	childProcessAction->setText( trUtf8( "\xe5\xad\x90\xe8\xbf\x9b\xe7\xa8\x8b\x28\x26\x43\x29" ) );	childProcessAction->setMenuText( trUtf8( "\xe5\xad\x90\xe8\xbf\x9b\xe7\xa8\x8b\x28\x26\x43\x29" ) );	childProcessAction->setAccel( tr( "Ctrl+C" ) );	Action->setText( QString::null );	if (MenuBar->findItem(1))		MenuBar->findItem(1)->setText( trUtf8( "\xe6\x96\x87\xe4\xbb\xb6\x28\x26\x46\x29" ) );	if (MenuBar->findItem(2))		MenuBar->findItem(2)->setText( trUtf8( "\xe7\xbc\x96\xe8\xbe\x91\x28\x26\x45\x29" ) );	V->changeItem( V->idAt( 1 ), trUtf8( "\xe6\x9b\xb4\xe6\x96\xb0\xe9\x80\x9f\xe5\xba\xa6\x28\x26\x53\x29\x20" ) );	if (MenuBar->findItem(3))		MenuBar->findItem(3)->setText( trUtf8( "\xe6\x9f\xa5\xe7\x9c\x8b\x28\x26\x56\x29" ) );	if (MenuBar->findItem(4))		MenuBar->findItem(4)->setText( trUtf8( "\xe5\xb8\xae\xe5\x8a\xa9\x28\x26\x48\x29" ) );}void MainForm::init(){	timerID = startTimer(1000);   // timeType = 0;	procCollection.initialize();	updateInfo();    	}void MainForm::updateInfo(){	listView1->clear();	procCollection.updateInfo();	vector<ProcItem> v = procCollection.getProcInfo();	char pid[18];	char vmSize[10];	char vmRss[10];	char nice[10];	for(int i = v.size()-1;i > -1;i--)	{		sprintf(pid,"%d",v[i].getPid());		sprintf(vmRss,"%lu",v[i].getVmRSS());		sprintf(vmSize,"%lu",v[i].getVmSize());		sprintf(nice,"%d",v[i].getNice());				listView1->insertItem(new QListViewItem(listView1,pid,v[i].getComm(),v[i].getProcessState(),vmRss,vmSize,nice));	}	if(procCollection.getCpuusage() > 0)		CPUprogressBar->setProgress(int(procCollection.getCpuusage()*100));//	static int count =0;	char sizedSize[10];	char totalSize[10];	sprintf(sizedSize,"%.1f",procCollection.getSizedMem());		sprintf(totalSize,"%.1f",procCollection.getTotalMem());	usedMemorytextLabel->setText(sizedSize);	totalMemory->setText(totalSize);	MemoryprogressBar->setProgress(((int)procCollection.getSizedMem()*100/procCollection.getTotalMem()));	listView1->setSelected(listView1->lastItem(),true);}void MainForm::FileExit(){	QApplication::exit(0);}void MainForm::ShowAbout(){	About* myabout = new About(this,"about",TRUE);	myabout->exec();}void MainForm::changeSpeed(QAction* action)//改变更新速度 {	int  t = tabWidget->currentPageIndex (); 	if(t == 0)		return;	if(action == HighAction)//获得 菜单项	{		killTimers();		timerID = startTimer(1000);        //timeType = 1;//自己定义的 触发时间长 	}	else if(action == StandardAction)	{		killTimers();		timerID = startTimer(2000);      // timeType = 2;	}	else if(action == LowAction)	{		killTimers();		timerID = startTimer(3000);      //  timeType = 3;	}	else if(action == PauseAction)	{		killTimers();		killTimer(timerID);   //     timeType = 4;	}}void MainForm::timerEvent( QTimerEvent * e)//时间触发的事件 {	killTimer(timerRefresh);      	updateInfo();}void MainForm::EndProcess()//进程结束按钮 {	int t= QMessageBox::warning(this,				    QString::fromUtf8("终止进程"),						    QString::fromUtf8("终止当前进程可能会影响系统运行,继续吗?"),				    QMessageBox::Yes | QMessageBox::Default,				    QMessageBox::No,				    QMessageBox::Cancel | QMessageBox::Escape);        	if (t== QMessageBox::Yes)//如果选择    ‘是‘	{		int pid;		sscanf(listView1->currentItem ()->text(0),"%d",&pid);		ProcItem * p = procCollection.getSpecProcess( pid);		ProcCollection::termProc(pid);		updateInfo();	}        }void MainForm::stopProcess(){	int pid;	sscanf(listView1->currentItem ()->text(0),"%d",&pid);	ProcItem * p = procCollection.getSpecProcess( pid);	ProcCollection::stopProc(pid);	updateInfo();}void MainForm::continueProcess(){	int pid;	sscanf(listView1->currentItem ()->text(0),"%d",&pid);	ProcItem * p = procCollection.getSpecProcess( pid);	ProcCollection::contPrco(pid);	updateInfo();}void MainForm::killProcess(){	int t= QMessageBox::warning(this,				    QString::fromUtf8("挂起进程"),						    QString::fromUtf8("挂起当前进程可能会影响系统运行,继续吗?\n您应该只杀死不响应的进程。"),				    QMessageBox::Yes | QMessageBox::Default,				    QMessageBox::No,				    QMessageBox::Cancel | QMessageBox::Escape);        	if (t== QMessageBox::Yes)//如果选择    ‘是‘	{		int pid;		sscanf(listView1->currentItem ()->text(0),"%d",&pid);		ProcItem * p = procCollection.getSpecProcess( pid);		ProcCollection::hupProc(pid);		updateInfo();	}    }void MainForm::openFile(){	OpenFiles* myopenfiles = new OpenFiles(this,"openfiles",TRUE);      	setopenfilesContent(myopenfiles);          	myopenfiles ->exec();}void MainForm::setopenfilesContent(OpenFiles* myopenfiles)//设置打开文件夹的内容{      //获得listview第1列的内容	QString process = listView1->currentItem ()->text(1);     //在打开 对话框中设置标签currentProcesslineEdit			int pid;	sscanf(listView1->currentItem ()->text(0),"%d",&pid);	ProcItem * p = procCollection.getSpecProcess( pid);		char tmp[15];		FileInfo v = p->getOpenedFile();	for(int i = NUM;i >= 0 ;i--)	{		sprintf(tmp,"%d",i);		if(v.count(i))			myopenfiles->listView2->insertItem(new QListViewItem(myopenfiles->listView2,tmp,v[i]));	}			myopenfiles->currentProcesslineEdit->setText(process);}void MainForm::refreshAtonce(){        	timerRefresh =startTimer(100);}void MainForm::detailInfo()//详细信息 {	detailForm * detail = new detailForm(this,"detailForm",true);		int pid;	sscanf(listView1->currentItem ()->text(0),"%d",&pid);	ProcItem * p = procCollection.getSpecProcess( pid);		char tmp[15];	sprintf(tmp,"%d",p->getEuid());	detail->EUIDlineEdit->setText(tmp);	detail->EffectiveownerlineEdit->setText(p->getEffective());	sprintf(tmp,"%d",p->getUid());	detail->UIDlineEdit->setText(tmp);	sprintf(tmp,"%lu s",p->getStartTime());	detail->runTimelineEdit->setText(tmp);		sprintf(tmp,"%lu ms",p->getSystemTime());	detail->systemTimelineEdit->setText(tmp);		sprintf(tmp,"%lu ms",p->getUserTime());	detail->userTimelineEdit->setText(tmp);    //自己添加lineedit内容    	detail->exec();    }void MainForm::childprocessInfo()//子进程 {	childProcessForm *childprocess = new childProcessForm(this,"childprocesForm",true);              //获得listview第1列的内容	QString parentProcess= listView1->currentItem ()->text(1);     //在打开 对话框中设置标签currentProcesslineEdit	childprocess->childProcesstextLabel->setText(parentProcess);//	childProcesslistView	int pid;	sscanf(listView1->currentItem ()->text(0),"%d",&pid);	ProcItem * p = procCollection.getSpecProcess( pid);		char tmp[15];	char child[15];	vector<int> v = p->getChildID();		for(int i = v.size()-1; i >= 0 ;i--)	{		sprintf(tmp,"%d",i);		sprintf(child,"%d",v[i]);		childprocess->childProcesslistView->insertItem(new QListViewItem(childprocess->childProcesslistView,child,procCollection.getSpecProcess(v[i])->getComm()));	}         	childprocess->exec();      }void MainForm::signalInfo()//信号信息 {	signalForm * signal = new signalForm(this,"signalForm",true); //      //获得listview第1列的内容	QString parentProcess= listView1->currentItem ()->text(1);       //在打开 对话框中设置标签currentProcesslineEdit	signal->signaltextLabel->setText(parentProcess);				char name[20];	char handler[20];	int hand;	int pid;	sscanf(listView1->currentItem ()->text(0),"%d",&pid);	ProcItem * p = procCollection.getSpecProcess( pid);	vector<SigItem> v = p->getSigItems();	for(int i = v.size()-1;i>=0;i--)	{		if(v[i].getIsBlocked())			sprintf(name,"%s(BLOCK)",v[i].getSigName().c_str());		else			sprintf(name,"%s",v[i].getSigName().c_str());		hand = v[i].getHand();		if(hand == 0)		{			sprintf(handler,"Default");		}		else if(hand == 1)		{			sprintf(handler,"Ignore");		}		else 			sprintf(handler,"%s",v[i].getAddress().c_str());		if(strlen(handler) <= 2)		{			sprintf(handler,"Default");		}		signal->signallistView->insertItem(new QListViewItem(signal->signallistView,name,handler));		}			signal->exec();}void MainForm::destroy()//mainform析构函数{ }void MainForm::tabWidgetcurrentChange()//改变属性页 处理函数 {	int  t = tabWidget->currentPageIndex (); 	if( t == 0)	{		killTimers();		killTimer(timerID);	}		if( t == 1)	{		killTimers();		timerID = startTimer(1000);	}	updateInfo();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -