📄 mainform.cpp
字号:
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 + -