修改窗口布局,处理方法模块显示在窗口右侧,不是对话框弹窗
修改插件模块,双击进入插件后,获取插件里面的QAction控件显示在Plugin ToolBar
This commit is contained in:
parent
3b32c2ed8e
commit
0e4a8b664a
|
|
@ -113,6 +113,7 @@ public:
|
|||
QScrollArea *m_pDialogLayout;
|
||||
PaiPushButton *m_pbtnRun;
|
||||
QString m_CurrentSLFFileName;
|
||||
QToolBar *m_toolBar_plugin = NULL;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -66,6 +66,11 @@ BEGIN_OSGGRAPHICS_NAMESPACE;
|
|||
//关闭事件
|
||||
void CModuleParamers::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if (m_toolBar_plugin)
|
||||
{
|
||||
m_toolBar_plugin->clear();
|
||||
m_toolBar_plugin->hide();
|
||||
}
|
||||
}
|
||||
|
||||
//构造函数
|
||||
|
|
|
|||
|
|
@ -1350,8 +1350,27 @@ void WorkflowSceneManager::slotAddModule(const QString& moduleName)
|
|||
// pai::objectmodel::PaiWorkflowDataModel* pWorkflow = pModuleConsole->m_pWorkflowDataModel;
|
||||
// ::GetWorkflowConsole()->GetWorkflowWidget()->SetWorkflow(pWorkflow);
|
||||
}
|
||||
// Plugin ToolBar工具栏
|
||||
if (pModuleParamers->m_toolBar_plugin)
|
||||
pModuleParamers->m_toolBar_plugin->hide();
|
||||
|
||||
if(amodule&&amodule->parDialog) {
|
||||
|
||||
if (pModuleParamers->m_toolBar_plugin->isHidden())
|
||||
{
|
||||
// 从插件里获取QAction 显示在Plugin ToolBar工具栏
|
||||
pModuleParamers->m_toolBar_plugin->clear();
|
||||
for (int i = 0; i < amodule->m_listAct.size(); i++)
|
||||
{
|
||||
QAction* pAct = amodule->m_listAct.at(i);
|
||||
QString sicon = pAct->property("icon_v").toString();
|
||||
QIcon imIcon(::GetImagePath() + sicon);
|
||||
pAct->setIcon(imIcon);
|
||||
pModuleParamers->m_toolBar_plugin->addAction(pAct);
|
||||
}
|
||||
pModuleParamers->m_toolBar_plugin->show();
|
||||
}
|
||||
|
||||
QRect rt=amodule->parDialog->geometry();
|
||||
pModuleParamers->m_pParameterEditor->setVisible(false);
|
||||
pModuleParamers->m_pDialogLayout->setVisible(true);
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ public:
|
|||
struct LogType *pLogType;
|
||||
struct ErrorInf *errorinf;
|
||||
QDialog *parDialog;
|
||||
QList<QAction*> m_listAct;
|
||||
QStringList OriginInNames;
|
||||
QStringList OriginOutNames;
|
||||
bool InitModule(QWidget*p=NULL);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "ObjWelllogRound.h"
|
||||
#include "ParameterItem.h"
|
||||
#include <QTextCodec>
|
||||
#include <QAction>
|
||||
// void OSGFRAMEWORK_EXPORT AppendConsole(pai::log::Priority priority,const QString &output);
|
||||
|
||||
using namespace pai::module;
|
||||
|
|
@ -1231,6 +1232,8 @@ bool PELibraryModule::validate()
|
|||
bool PELibraryModule::InitModule(QWidget*pWidget)
|
||||
{
|
||||
typedef QDialog *(* LPDDIALOG)(QWidget*pWidget);
|
||||
typedef void* (*LPD_ACTION_FUNC)(int* count);
|
||||
|
||||
typedef int (* LPFNDLLFUNC)();
|
||||
LPFNDLLFUNC lpfnDllFunc,lpfnInitDllFunc;
|
||||
LPDDIALOG m_parDialog;
|
||||
|
|
@ -1290,6 +1293,19 @@ bool PELibraryModule::InitModule(QWidget*pWidget)
|
|||
if(m_parDialog) {
|
||||
if(errorinf) errorinf->ErrorNo=0;
|
||||
parDialog=m_parDialog(pWidget);
|
||||
|
||||
LPD_ACTION_FUNC ACT_Func = (LPD_ACTION_FUNC)Methodlib.resolve("getAction_CApi");
|
||||
if (ACT_Func)
|
||||
{
|
||||
int ncount = 0;
|
||||
QAction** actArr = (QAction**)ACT_Func(&ncount);
|
||||
for (int i = 0; i < ncount; i++)
|
||||
{
|
||||
QAction* pAct = actArr[i];
|
||||
QString s = pAct->property("icon_v").toString();
|
||||
m_listAct << actArr[i];
|
||||
}
|
||||
}
|
||||
if(errorinf) {
|
||||
if(errorinf->ErrorNo<0) {
|
||||
if(parDialog) {
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ SOURCES += \
|
|||
mainwindow.cpp \
|
||||
main.cpp \
|
||||
mainwindowcurve.cpp \
|
||||
mainwindowsplitter.cpp \
|
||||
newheaddialog.cpp \
|
||||
preqtablewidget.cpp \
|
||||
qmycustomplot.cpp \
|
||||
|
|
@ -137,6 +138,7 @@ HEADERS += \
|
|||
fracsel.h \
|
||||
mainwindow.h \
|
||||
mainwindowcurve.h \
|
||||
mainwindowsplitter.h \
|
||||
newheaddialog.h \
|
||||
preqtablewidget.h \
|
||||
qmycustomplot.h \
|
||||
|
|
@ -166,6 +168,7 @@ FORMS += \
|
|||
interfaceWidget.ui \
|
||||
mainwindow.ui \
|
||||
mainwindowcurve.ui \
|
||||
mainwindowsplitter.ui \
|
||||
newheaddialog.ui \
|
||||
qtprojectwidgets.ui
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@
|
|||
#include "TxtEditorDlg.h"
|
||||
#include "ObjWell.h"
|
||||
#include "wellloginformation.h"
|
||||
#include "mainwindowsplitter.h"
|
||||
|
||||
using namespace pai::gui;
|
||||
//以下参数从配置文件读取
|
||||
int g_iIndex = 0;
|
||||
|
|
@ -338,6 +340,11 @@ void MainWindow::s_Open()
|
|||
|
||||
void MainWindow::s_SaveProject()
|
||||
{
|
||||
QWidget * pMyWidget = CallPlugin::getInstance()->getPluginWidget(DEMO_PLUGIN, (QWidget *)this);
|
||||
if (pMyWidget != nullptr)
|
||||
{
|
||||
pMyWidget->show();
|
||||
}
|
||||
// //加载插件显示
|
||||
// QWidget * pMyWidget = CallPlugin::getInstance()->getPluginWidget(PLUGINUNIT, (QWidget *)this);
|
||||
// if (pMyWidget != nullptr)
|
||||
|
|
@ -394,11 +401,14 @@ void MainWindow::s_showView()
|
|||
tr("多井图文件(*.json)"));
|
||||
if (fileFull.isEmpty())
|
||||
{
|
||||
MainWindowSplitter* mainSplitter = new MainWindowSplitter();
|
||||
mainSplitter->setSplitterWidget(m_projectWidgets);
|
||||
m_centerWidgets->addTab(mainSplitter, "解释视图");
|
||||
//----
|
||||
MainWindowCurve *mainWindowCurve = new MainWindowCurve();//中间工作区
|
||||
// 左侧树
|
||||
mainWindowCurve->m_leftWidgets = m_projectWidgets;
|
||||
m_centerWidgets->addTab(mainWindowCurve, "解释视图");
|
||||
// MainWindowCurve *mainWindowCurve = new MainWindowCurve();//中间工作区
|
||||
// // 左侧树
|
||||
// mainWindowCurve->m_leftWidgets = m_projectWidgets;
|
||||
// m_centerWidgets->addTab(mainWindowCurve, "解释视图");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -406,10 +416,16 @@ void MainWindow::s_showView()
|
|||
QString fileName = fileInfo.fileName(); // 获取文件名
|
||||
|
||||
//----
|
||||
MainWindowCurve *mainWindowCurve = new MainWindowCurve();//中间工作区
|
||||
// 左侧树
|
||||
mainWindowCurve->m_leftWidgets = m_projectWidgets;
|
||||
m_centerWidgets->addTab(mainWindowCurve, fileName);
|
||||
//MainWindowCurve *mainWindowCurve = new MainWindowCurve();//中间工作区
|
||||
//// 左侧树
|
||||
//mainWindowCurve->m_leftWidgets = m_projectWidgets;
|
||||
//m_centerWidgets->addTab(mainWindowCurve, fileName);
|
||||
|
||||
MainWindowSplitter* mainSplitter = new MainWindowSplitter();
|
||||
mainSplitter->setSplitterWidget(m_projectWidgets);
|
||||
m_centerWidgets->addTab(mainSplitter, fileName);
|
||||
|
||||
MainWindowCurve *mainWindowCurve = mainSplitter->getMainWindowCurve();
|
||||
mainWindowCurve->Open(fileFull);
|
||||
|
||||
//QFuture<void> future = QtConcurrent::run(std::bind(&MainWindowCurve::s_Open, mainWindowCurve, fileFull));
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "LogModuleParamers.h"
|
||||
#include "LogModuleConsole.h"
|
||||
#include "DepPairs.h"
|
||||
#include "mainwindowsplitter.h"
|
||||
|
||||
extern int g_iOneWidth; //道宽
|
||||
extern QString g_prjname;
|
||||
|
|
@ -34,6 +35,8 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
|
|||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
m_pParentWin = qobject_cast<MainWindowSplitter*>(parent);
|
||||
|
||||
QtCommonClass *qtCommon = new QtCommonClass(this);
|
||||
m_strUuid = qtCommon->getUUid();
|
||||
|
||||
|
|
@ -41,6 +44,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
|
|||
addToolBar(Qt::LeftToolBarArea, ui->toolBar);
|
||||
addToolBar(Qt::RightToolBarArea, ui->toolBar_2);
|
||||
addToolBar(Qt::RightToolBarArea, ui->toolBar_3);
|
||||
addToolBar(Qt::RightToolBarArea, ui->toolBar_plugin);
|
||||
|
||||
//初始化工具栏
|
||||
initMainToolBar();
|
||||
|
|
@ -51,7 +55,7 @@ MainWindowCurve::MainWindowCurve(QWidget *parent) :
|
|||
//拼接
|
||||
initToolBar_3();
|
||||
ui->toolBar_3->hide();
|
||||
|
||||
ui->toolBar_plugin->hide();
|
||||
//加载样式
|
||||
loadStyle(":/qrc/qss/flatgray.css");
|
||||
|
||||
|
|
@ -158,6 +162,11 @@ MainWindowCurve::~MainWindowCurve()
|
|||
delete ui;
|
||||
}
|
||||
|
||||
QToolBar * MainWindowCurve::getPluginToolBar()
|
||||
{
|
||||
return ui->toolBar_plugin;
|
||||
}
|
||||
|
||||
//鼠标滚动,通知可视解释窗口
|
||||
void MainWindowCurve::s_mouseWheel(QWheelEvent *event)
|
||||
{
|
||||
|
|
@ -220,6 +229,7 @@ void MainWindowCurve::initMainToolBar()
|
|||
ui->mainToolBar->addAction(m_executeDepthShiftAc);
|
||||
ui->mainToolBar->addAction(m_joindepthAc);
|
||||
ui->mainToolBar->addAction(m_ModuleOpenAc);
|
||||
|
||||
// ui->mainToolBar->addAction(m_runAc);
|
||||
// ui->mainToolBar->addAction(m_debugAc);
|
||||
// ui->mainToolBar->addAction(m_loadAc);
|
||||
|
|
@ -2298,41 +2308,7 @@ void MainWindowCurve::s_ExecuteMerge()
|
|||
|
||||
void MainWindowCurve::s_ModuleOpen()
|
||||
{
|
||||
QString strSlfName = "";
|
||||
QString strLeft = m_leftWidgets->getLeftTreeString();
|
||||
if(strLeft.length() > 0)
|
||||
{
|
||||
QStringList list = strLeft.split("#@@#");//QString字符串分割函数
|
||||
if (list.size() > 3)
|
||||
{
|
||||
strSlfName = list[0];
|
||||
QString strWellName = list[1];
|
||||
}
|
||||
}
|
||||
if (strSlfName.isEmpty())
|
||||
{
|
||||
QMessageBox::information(nullptr, "提示", "请先选中待处理井次");
|
||||
return;
|
||||
}
|
||||
|
||||
CModuleConsole* pModuleConsole = new pai::graphics::CModuleConsole();
|
||||
CModuleParamers* pDialog = new CModuleParamers(pModuleConsole);//::CreatParamControlWidget();
|
||||
SetWorkflowConsole(pModuleConsole);
|
||||
pModuleConsole->g_mModuleParamers = pDialog;
|
||||
pModuleConsole->m_pWorkflowDataModel = new CWellLogWorkflowDataModel();
|
||||
pDialog->m_CurrentSLFFileName = strSlfName;
|
||||
pDialog->CreatParamControlWidget();
|
||||
|
||||
QString subStr = strSlfName;
|
||||
int startPos = strSlfName.indexOf("Logdata");
|
||||
if (startPos>=0)
|
||||
{
|
||||
subStr = subStr.right(strSlfName.length() - startPos - 7);
|
||||
}
|
||||
pDialog->setWindowTitle(subStr);
|
||||
|
||||
pDialog->show();
|
||||
return;
|
||||
m_pParentWin->setModuleOpenOrClose();
|
||||
}
|
||||
|
||||
//void MainWindowCurve::s_Open(QString fileFull)
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ struct SelectTableItem
|
|||
QString m_strLineName="";
|
||||
QString m_strFormInfoType="";//类型:curve, wave
|
||||
};
|
||||
class MainWindowSplitter;
|
||||
|
||||
namespace Ui {
|
||||
class MainWindowCurve;
|
||||
|
|
@ -34,6 +35,7 @@ public:
|
|||
explicit MainWindowCurve(QWidget *parent = nullptr);
|
||||
~MainWindowCurve();
|
||||
|
||||
QToolBar * getPluginToolBar();
|
||||
private:
|
||||
Ui::MainWindowCurve *ui;
|
||||
|
||||
|
|
@ -52,6 +54,8 @@ public slots:
|
|||
void s_mouseWheel(QWheelEvent *event);
|
||||
|
||||
public:
|
||||
MainWindowSplitter* m_pParentWin = NULL;
|
||||
|
||||
QString m_strUuid;
|
||||
QStringList m_listWell;
|
||||
//当前选中数据表格
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="rightMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<item row="1" column="1">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
|
|
@ -30,7 +33,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>21</height>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
|
|
@ -79,6 +82,17 @@
|
|||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
<widget class="QToolBar" name="toolBar_plugin">
|
||||
<property name="windowTitle">
|
||||
<string>toolBar_4</string>
|
||||
</property>
|
||||
<attribute name="toolBarArea">
|
||||
<enum>TopToolBarArea</enum>
|
||||
</attribute>
|
||||
<attribute name="toolBarBreak">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
|
|
|||
76
logPlus/mainwindowsplitter.cpp
Normal file
76
logPlus/mainwindowsplitter.cpp
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
#include "mainwindowsplitter.h"
|
||||
#include "ui_mainwindowsplitter.h"
|
||||
#include "LogModuleParamers.h"
|
||||
#include "LogModuleConsole.h"
|
||||
|
||||
MainWindowSplitter::MainWindowSplitter(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindowSplitter)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
|
||||
}
|
||||
|
||||
MainWindowSplitter::~MainWindowSplitter()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindowSplitter::setSplitterWidget(QtProjectWidgets *pWidgets)
|
||||
{
|
||||
m_mainWindowCurve = new MainWindowCurve(this);//中间工作区
|
||||
// 左侧树
|
||||
m_mainWindowCurve->m_leftWidgets = pWidgets;
|
||||
m_PluginToolBar = m_mainWindowCurve->getPluginToolBar();
|
||||
|
||||
CModuleConsole* pModuleConsole = new pai::graphics::CModuleConsole();
|
||||
CModuleParamers* pDialog = new CModuleParamers(pModuleConsole);//::CreatParamControlWidget();
|
||||
SetWorkflowConsole(pModuleConsole);
|
||||
pModuleConsole->g_mModuleParamers = pDialog;
|
||||
pModuleConsole->m_pWorkflowDataModel = new CWellLogWorkflowDataModel();
|
||||
//pDialog->m_CurrentSLFFileName = strSlfName;
|
||||
pDialog->m_toolBar_plugin = m_PluginToolBar;
|
||||
pDialog->CreatParamControlWidget();
|
||||
|
||||
//QString subStr = strSlfName;
|
||||
//int startPos = strSlfName.indexOf("Logdata");
|
||||
//if (startPos >= 0)
|
||||
//{
|
||||
// subStr = subStr.right(strSlfName.length() - startPos - 7);
|
||||
//}
|
||||
//pDialog->setWindowTitle(subStr);
|
||||
|
||||
//pDialog->show();
|
||||
|
||||
m_pVSplitter = new QSplitter(Qt::Horizontal);
|
||||
|
||||
m_pVSplitter->addWidget(m_mainWindowCurve);
|
||||
m_pVSplitter->addWidget(pDialog);
|
||||
|
||||
setCentralWidget(m_pVSplitter);
|
||||
|
||||
QList<int> sizes;
|
||||
sizes << this->width() << 0;
|
||||
m_pVSplitter->setSizes(sizes);//默认隐藏左侧多井图窗口
|
||||
}
|
||||
|
||||
void MainWindowSplitter::setModuleOpenOrClose()
|
||||
{
|
||||
QList<int> sizes;
|
||||
if (m_pVSplitter->widget(1)->width()) {
|
||||
sizes << width() << 0;
|
||||
if (m_PluginToolBar)
|
||||
m_PluginToolBar->hide();
|
||||
|
||||
}
|
||||
else {
|
||||
sizes << width() - 450 << 450;
|
||||
}
|
||||
m_pVSplitter->setSizes(sizes);//默认隐藏左侧多井图窗口
|
||||
}
|
||||
|
||||
MainWindowCurve* MainWindowSplitter::getMainWindowCurve()
|
||||
{
|
||||
return m_mainWindowCurve;
|
||||
}
|
||||
47
logPlus/mainwindowsplitter.h
Normal file
47
logPlus/mainwindowsplitter.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef MainWindowSplitter_H
|
||||
#define MainWindowSplitter_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include "mainwindowcurve.h"
|
||||
#include "qtprojectwidgets.h"
|
||||
|
||||
|
||||
#pragma execution_character_set("utf-8")
|
||||
|
||||
namespace Ui {
|
||||
class MainWindowSplitter;
|
||||
}
|
||||
|
||||
class MainWindowSplitter : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindowSplitter(QWidget *parent = nullptr);
|
||||
~MainWindowSplitter();
|
||||
|
||||
void setSplitterWidget(QtProjectWidgets *pWidgets);
|
||||
|
||||
void setModuleOpenOrClose();
|
||||
|
||||
MainWindowCurve* getMainWindowCurve();
|
||||
|
||||
private:
|
||||
Ui::MainWindowSplitter *ui;
|
||||
MainWindowCurve *m_mainWindowCurve = NULL;
|
||||
QSplitter* m_pVSplitter = NULL;
|
||||
QToolBar* m_PluginToolBar = NULL;
|
||||
|
||||
public slots:
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
QtProjectWidgets *m_leftWidgets = NULL; //左侧工程区
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // MainWindowSplitter_H
|
||||
22
logPlus/mainwindowsplitter.ui
Normal file
22
logPlus/mainwindowsplitter.ui
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindowSplitter</class>
|
||||
<widget class="QMainWindow" name="MainWindowSplitter">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>600</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout"/>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Loading…
Reference in New Issue
Block a user