1 Star 0 Fork 0

houmingzhang/CovAnalysisTool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mainwindow.cpp 5.97 KB
一键复制 编辑 原始数据 按行查看 历史
Administrator 提交于 2021-10-05 19:06 +08:00 . 协相关分析工具
#include <QtGui>
#include <QDebug>
#include <QtCore>
#include "mainwindow.h"
#include "QDataTrendWidget.h"
#include "images.h"
#include "AnalysisTask.h"
CMainWindow::CMainWindow(QWidget* parent)
: QMainWindow(parent)
{
setupUi(this);
setWindowIcon( Images::icon("logo", 64) );
m_workspacePtr = new QWorkspace;
setCentralWidget(m_workspacePtr);
// mapper = new QSignalMapper(this);
// connect(mapper, SIGNAL(mapped(QWidget *)),
// m_workspacePtr, SLOT(setActiveWindow(QWidget *)));
m_workmodeactGroup=new QActionGroup(this);
iniStatusBar();
iniConnect();
showMaximized();
showCount(0);
setDefaultWorkmode();
WSADATA wsa={0};
WSAStartup(MAKEWORD(2,2),&wsa);
m_pserver=new CoAnalysisServer(this);
}
void CMainWindow::OnCreateAnalysisWidget(QString taskName,QString XAxisName,QString YAxisName)
{
AnalysisTask* ptask = dynamic_cast<AnalysisTask*>(sender());
QDataTrendWidget* widget=createAnalysisWidget(ptask,taskName,XAxisName,YAxisName);
ptask->BindDataTrendWidget(widget);
}
void CMainWindow::setDefaultWorkmode()
{
}
void CMainWindow::prepareForDataSourceChanged()
{
QWidgetList list =m_workspacePtr->windowList();
for(int i=0; i<list.count(); i++)
{
QDataTrendWidget* pwidget =
qobject_cast<QDataTrendWidget*>(list[i]);
pwidget->close();
}
}
void CMainWindow::iniStatusBar()
{
m_lblstatus = new QLabel;
m_lblstatus->setFixedWidth(150);
m_lblstatus->setFixedHeight(20);
m_lblstatus->setAlignment(Qt::AlignLeft);
m_lblstatus->setFrameShape(QFrame::WinPanel);
m_lblstatus->setFrameShadow(QFrame::Sunken);
m_lblstatus->setText(tr("状态:0/0"));
m_lblstatus->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
m_lblprocessing = new QLabel;
m_lblprocessing->setFixedHeight(20);
m_lblprocessing->setAlignment(Qt::AlignLeft);
m_lblprocessing->setFrameShape(QFrame::WinPanel);
m_lblprocessing->setFrameShadow(QFrame::Sunken);
m_lblprocessing->setText(tr("当前正在处理:"));
m_lblprocessing->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed);
m_lblpath = new QLabel;
m_lblpath->setFixedHeight(20);
m_lblpath->setAlignment(Qt::AlignLeft);
m_lblpath->setFrameShape(QFrame::WinPanel);
m_lblpath->setFrameShadow(QFrame::Sunken);
m_lblpath->setText(tr("打开目录:"));
m_lblpath->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed);
statusBar()->insertWidget(0,m_lblstatus,0);
statusBar()->insertWidget(1,m_lblprocessing,2);
statusBar()->insertWidget(2,m_lblpath,1);
}
void CMainWindow::iniConnect()
{
connect(actQuit, SIGNAL(triggered()), this, SLOT(doQuit()));
}
void CMainWindow::cleanUpLastWorkMode()
{
QWidgetList list = m_workspacePtr->windowList();
for(int i=0; i<list.count(); i++)
{
QDataTrendWidget* pwidget =
qobject_cast<QDataTrendWidget*>(list[i]);
pwidget->close();
}
m_analysistaskmap.clear();
}
void CMainWindow::doQuit()
{
QWidgetList list = m_workspacePtr->windowList();
for(int i=0; i<list.count(); i++)
{
QDataTrendWidget* pwidget =
qobject_cast<QDataTrendWidget*>(list[i]);
pwidget->close();
}
qApp->quit();
}
QDataTrendWidget* CMainWindow::activeWindow ()
{
QDataTrendWidget* pwidget
= qobject_cast<QDataTrendWidget*>(m_workspacePtr->activeWindow());
return pwidget;
}
/*
QDataTrendWidget* CMainWindow::createQDataTrendWidget(QString& taskname,QString& XAxisName,QString& YAxisName)
{
QMap<QString,QDataTrendWidget*>::iterator it = m_analysistaskmap.find(taskname);
if(it!=m_analysistaskmap.end())
{
return it.value();
}else{
QDataTrendWidget* pwidget
= new QDataTrendWidget( taskname,XAxisName,YAxisName);
m_workspacePtr->addWindow(pwidget);
return pwidget;
}
}*/
QDataTrendWidget* CMainWindow::GetQDataAnlysisWidgetByTaskName(const char * taskname)
{
QMap<QString,QDataTrendWidget*>::const_iterator iter=m_analysistaskmap.constBegin();
while(iter!=m_analysistaskmap.constEnd())
{
if(iter.key().contains(QString(taskname)))
{
return iter.value();
}
iter++;
}
iter=m_analysistaskmap.constBegin();
return iter.value();
}
void CMainWindow::showCount(int count)
{
m_lblstatus->setText(tr("当前分析窗口数量:%1").arg(count));
}
CMainWindow::~CMainWindow()
{
if(m_pserver!=NULL)
delete m_pserver,m_pserver=NULL;
WSACleanup( );
}
QDataTrendWidget* CMainWindow::createAnalysisWidget(AnalysisTask* ptask,QString& taskName,QString& XAxisName,QString& YAxisName)
{
std::map<QString,QDataTrendWidget*>::iterator it = m_analysisWidgetsMap.find(taskName);
if(it!=m_analysisWidgetsMap.end())
{
it->second->setVisible(true);
m_workspacePtr->setActiveWindow(it->second);
it->second->showMaximized();
showCount(m_analysistaskmap.size());
return it->second;
}else{
QDataTrendWidget* widget
= new QDataTrendWidget(ptask,taskName,XAxisName,YAxisName);
QObject::connect(ptask, SIGNAL(NewChannelDataRecvied( )), widget, SLOT(SlotNewChannelDataRecvied( )));
widget->setVisible(true);
m_workspacePtr->addWindow(widget);
//m_analysisWidgetsMap[taskName]=widget;
/*QMap<int, QString> map;
map.insert(1,"A");
map.insert(2,"B");
map.insert(3,"C");
QMapIterator<int, QString> j(map);
while (j.hasNext()) {
if(j.next().key() == 2)
qDebug() << j.value();
}*/
m_analysisWidgetsMap.insert(std::pair<QString, QDataTrendWidget*>(taskName,widget));
/*std::map<QString,QDataTrendWidget*>::iterator it2=m_analysisWidgetsMap.begin();
while (it2!=m_analysisWidgetsMap.end()) {
qDebug() << it2->first<<":"<< it2->second;
it2++;
}*/
m_workspacePtr->setActiveWindow(widget);
widget->showMaximized();
showCount(m_analysisWidgetsMap.size());
ptask->BindDataTrendWidget(widget);
return widget;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dtrylzhm/cov-analysis-tool.git
git@gitee.com:dtrylzhm/cov-analysis-tool.git
dtrylzhm
cov-analysis-tool
CovAnalysisTool
master

搜索帮助