整理项目生成规则到logPlusAll.pro, 项目依赖等,不需要一个一个编译
Python算法二次开发模块封装pythonhandler py源码文件生成pyd
This commit is contained in:
parent
72c2ceb5cb
commit
ae0c8f0c11
|
|
@ -37,10 +37,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,7 +68,7 @@ INCLUDEPATH += ../../Slfio/include
|
||||||
INCLUDEPATH += ../include
|
INCLUDEPATH += ../include
|
||||||
INCLUDEPATH += ../../common
|
INCLUDEPATH += ../../common
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,16 +22,16 @@ INCLUDEPATH += ../include/ \
|
||||||
# Default rules for deployment.
|
# Default rules for deployment.
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
TARGET = CallPlugind
|
TARGET = CallPlugind
|
||||||
DESTDIR = ../Bin
|
DESTDIR = $$PWD/../Bin
|
||||||
MOC_DIR = ../tmp/CallPlugind
|
MOC_DIR = ../tmp/CallPlugind
|
||||||
UI_DIR = ../tmp/CallPlugind
|
UI_DIR = ../tmp/CallPlugind
|
||||||
OBJECTS_DIR = ../tmp/CallPlugind
|
OBJECTS_DIR = ../tmp/CallPlugind
|
||||||
LIBS += -L../Bin/ -lHPluginManaged
|
LIBS += -L$$PWD/../Bin/ -lHPluginManaged
|
||||||
} else {
|
} else {
|
||||||
TARGET = CallPlugin
|
TARGET = CallPlugin
|
||||||
DESTDIR = ../Bin
|
DESTDIR = $$PWD/../BinR
|
||||||
MOC_DIR = ../tmp/CallPlugin
|
MOC_DIR = ../tmp/CallPlugin
|
||||||
UI_DIR = ../tmp/CallPlugin
|
UI_DIR = ../tmp/CallPlugin
|
||||||
OBJECTS_DIR = ../tmp/CallPlugin
|
OBJECTS_DIR = ../tmp/CallPlugin
|
||||||
LIBS += -L../Bin/ -lHPluginManage
|
LIBS += -L$$PWD/../BinR/ -lHPluginManage
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -79,13 +79,13 @@ INCLUDEPATH += ../../WellLogUI/include
|
||||||
INCLUDEPATH += ../../BaseFun/include
|
INCLUDEPATH += ../../BaseFun/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lWellLogUId
|
LIBS += -L$$PWD/../../Bin -lWellLogUId
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../BinR -lOSGDataModel
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lWellLogUI
|
LIBS += -L$$PWD/../../BinR -lWellLogUI
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -92,7 +92,8 @@ HEADERS += \
|
||||||
cdialog.h \
|
cdialog.h \
|
||||||
dataslothelper.h \
|
dataslothelper.h \
|
||||||
deptlineedit.h \
|
deptlineedit.h \
|
||||||
view.h
|
view.h \
|
||||||
|
../include/DataManagger.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
../../common/geometryutils.cpp \
|
../../common/geometryutils.cpp \
|
||||||
|
|
@ -141,9 +142,9 @@ INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModel/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -84,11 +84,11 @@ INCLUDEPATH += ../../OSGFramework/include
|
||||||
INCLUDEPATH += ../../common
|
INCLUDEPATH += ../../common
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lConvertorManagerd
|
LIBS += -L$$PWD/../../Bin -lConvertorManagerd
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lConvertorManager
|
LIBS += -L$$PWD/../../BinR -lConvertorManager
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ INCLUDEPATH += ../../common \
|
||||||
../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include\
|
../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include\
|
||||||
../../Workflow/WFWidget/include
|
../../Workflow/WFWidget/include
|
||||||
|
|
||||||
HEADERS += ../include/*.h
|
# HEADERS += ../include/*.h
|
||||||
|
|
||||||
SOURCES += *.cpp
|
SOURCES += *.cpp
|
||||||
|
|
||||||
|
|
@ -36,10 +36,10 @@ SOURCES += *.cpp
|
||||||
|
|
||||||
OBJECTS_DIR = ../obj
|
OBJECTS_DIR = ../obj
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
CONFIG += qt warn_off \
|
CONFIG += qt warn_off \
|
||||||
|
|
@ -53,7 +53,7 @@ DEFINES += QT_DLL
|
||||||
# 目标文件夹
|
# 目标文件夹
|
||||||
#CATEGORY = OSGDataModel
|
#CATEGORY = OSGDataModel
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,9 +54,6 @@ SOURCES += ../src/customlistwidget.cpp \
|
||||||
wellloginformation.cpp
|
wellloginformation.cpp
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
../../common/geometryutils.h \
|
../../common/geometryutils.h \
|
||||||
../include/BaseObject.h \
|
|
||||||
../include/ObjWelllog.h \
|
|
||||||
../include/ObjWelllogTABLE.h \
|
|
||||||
../include/wellloginformation.h \
|
../include/wellloginformation.h \
|
||||||
customlistwidget.h
|
customlistwidget.h
|
||||||
|
|
||||||
|
|
@ -82,9 +79,9 @@ INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
||||||
INCLUDEPATH += ../../Workflow/WFWidget/include
|
INCLUDEPATH += ../../Workflow/WFWidget/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../Bin -lOSGDataModeld
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../BinR -lOSGDataModel
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,13 +21,13 @@ INCLUDEPATH += ../include/
|
||||||
# Default rules for deployment.
|
# Default rules for deployment.
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
TARGET = HPluginManaged
|
TARGET = HPluginManaged
|
||||||
DESTDIR = ../Bin
|
DESTDIR = $$PWD/../Bin
|
||||||
MOC_DIR = ../tmp/HPluginManaged
|
MOC_DIR = ../tmp/HPluginManaged
|
||||||
UI_DIR = ../tmp/HPluginManaged
|
UI_DIR = ../tmp/HPluginManaged
|
||||||
OBJECTS_DIR = ../tmp/HPluginManaged
|
OBJECTS_DIR = ../tmp/HPluginManaged
|
||||||
} else {
|
} else {
|
||||||
TARGET = HPluginManage
|
TARGET = HPluginManage
|
||||||
DESTDIR = ../Bin
|
DESTDIR = $$PWD/../BinR
|
||||||
MOC_DIR = ../tmp/HPluginManage
|
MOC_DIR = ../tmp/HPluginManage
|
||||||
UI_DIR = ../tmp/HPluginManage
|
UI_DIR = ../tmp/HPluginManage
|
||||||
OBJECTS_DIR = ../tmp/HPluginManage
|
OBJECTS_DIR = ../tmp/HPluginManage
|
||||||
|
|
|
||||||
|
|
@ -39,10 +39,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -113,25 +113,25 @@ INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModel/include
|
||||||
INCLUDEPATH += ../../Workflow/WFWidget/include
|
INCLUDEPATH += ../../Workflow/WFWidget/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../Bin -lDataMgrd
|
LIBS += -L$$PWD/../../Bin -lDataMgrd
|
||||||
LIBS += -L../../Bin -lOSGFrameworkd
|
LIBS += -L$$PWD/../../Bin -lOSGFrameworkd
|
||||||
LIBS += -L../../Bin -lWellLogUId
|
LIBS += -L$$PWD/../../Bin -lWellLogUId
|
||||||
LIBS += -L../../Bin -lWellLogModuled
|
LIBS += -L$$PWD/../../Bin -lWellLogModuled
|
||||||
LIBS += -L../../Bin -lWFWidgetd
|
LIBS += -L$$PWD/../../Bin -lWFWidgetd
|
||||||
LIBS += -L../../Bin -lWFCrystald
|
LIBS += -L$$PWD/../../Bin -lWFCrystald
|
||||||
LIBS += -L../../Bin -lWFEngined
|
LIBS += -L$$PWD/../../Bin -lWFEngined
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../BinR -lOSGDataModel
|
||||||
LIBS += -L../../Bin -lDataMgr
|
LIBS += -L$$PWD/../../BinR -lDataMgr
|
||||||
LIBS += -L../../Bin -lOSGFramework
|
LIBS += -L$$PWD/../../BinR -lOSGFramework
|
||||||
LIBS += -L../../Bin -lWellLogUI
|
LIBS += -L$$PWD/../../BinR -lWellLogUI
|
||||||
LIBS += -L../../Bin -lWellLogModule
|
LIBS += -L$$PWD/../../BinR -lWellLogModule
|
||||||
LIBS += -L../../Bin -lWFWidget
|
LIBS += -L$$PWD/../../BinR -lWFWidget
|
||||||
LIBS += -L../../Bin -lWFCrystal
|
LIBS += -L$$PWD/../../BinR -lWFCrystal
|
||||||
LIBS += -L../../Bin -lWFEngine
|
LIBS += -L$$PWD/../../BinR -lWFEngine
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,10 @@ INCLUDEPATH += ../../common \
|
||||||
|
|
||||||
OBJECTS_DIR = ../obj
|
OBJECTS_DIR = ../obj
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
CONFIG += qt warn_off \
|
CONFIG += qt warn_off \
|
||||||
|
|
@ -51,9 +51,9 @@ HEADERS += \
|
||||||
# 目标文件夹
|
# 目标文件夹
|
||||||
#CATEGORY = OSGDataModel
|
#CATEGORY = OSGDataModel
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lWFEngined
|
LIBS += -L$$PWD/../../Bin -lWFEngined
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lWFEngine
|
LIBS += -L$$PWD/../../BinR -lWFEngine
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,300 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="BaseLineFillProperty.cpp" />
|
|
||||||
<ClCompile Include="BaseObject.cpp" />
|
|
||||||
<ClCompile Include="ColorInterpolate.cpp" />
|
|
||||||
<ClCompile Include="CurveLineLog.cpp" />
|
|
||||||
<ClCompile Include="CustomPropertyRegister.cpp" />
|
|
||||||
<ClCompile Include="DialogFactory.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjCoreImage.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjGeostratums.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjGraphicsHeadCell.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjPixmapItem.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjRegressionFormula.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ItemGroupPropertyies.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWellGraphicsHead.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjCoreImage.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjGeostratums.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjGraphicsHeadCell.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjPixmapItem.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ItemGroupPropertyies.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjRegressionFormula.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWellGraphicsHead.cpp" />
|
|
||||||
<ClCompile Include="GeoStratificationProperty.cpp" />
|
|
||||||
<ClCompile Include="Interpolate.cpp" />
|
|
||||||
<ClCompile Include="ItemGroupPropertyies.cpp" />
|
|
||||||
<ClCompile Include="MacroInterpreter.cpp" />
|
|
||||||
<ClCompile Include="ObjCurve.cpp" />
|
|
||||||
<ClCompile Include="ObjGraphicsHeadCell.cpp" />
|
|
||||||
<ClCompile Include="ObjGeostratums.cpp" />
|
|
||||||
<ClCompile Include="ObjRegressionFormula.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_BaseObject.cpp" />
|
|
||||||
<ClCompile Include="DocumentTemplate.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjContourImpl.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjCrossplot.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjDiscreteWellLog.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjectEvent.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjEllipse.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjPolygon.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjRect.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWell.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWordsResult.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_BaseObject.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjContourImpl.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjCrossplot.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjDiscreteWellLog.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjectEvent.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjEllipse.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjPolygon.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjRect.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWell.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWordsResult.cpp" />
|
|
||||||
<ClCompile Include="GeologicalStratificationRoot.cpp" />
|
|
||||||
<ClCompile Include="GeologicalStratificatonObject.cpp" />
|
|
||||||
<ClCompile Include="LineProperty.cpp" />
|
|
||||||
<ClCompile Include="ObjBitmap.cpp" />
|
|
||||||
<ClCompile Include="ObjContourImpl.cpp" />
|
|
||||||
<ClCompile Include="ObjCoreImage.cpp" />
|
|
||||||
<ClCompile Include="ObjCrossplot.cpp" />
|
|
||||||
<ClCompile Include="ObjDiscreteWellLog.cpp" />
|
|
||||||
<ClCompile Include="ObjectEvent.cpp" />
|
|
||||||
<ClCompile Include="ObjectEventEnum.cpp" />
|
|
||||||
<ClCompile Include="ObjectFolder.cpp" />
|
|
||||||
<ClCompile Include="ObjectGenralFactory.cpp" />
|
|
||||||
<ClCompile Include="ObjectIDDescription.cpp" />
|
|
||||||
<ClCompile Include="ObjectViewInfo.cpp" />
|
|
||||||
<ClCompile Include="ObjEllipse.cpp" />
|
|
||||||
<ClCompile Include="ObjNodeUserData.cpp" />
|
|
||||||
<ClCompile Include="ObjPixmapItem.cpp" />
|
|
||||||
<ClCompile Include="ObjPolygon.cpp" />
|
|
||||||
<ClCompile Include="ObjProject.cpp" />
|
|
||||||
<ClCompile Include="ObjRect.cpp" />
|
|
||||||
<ClCompile Include="ObjRegression.cpp" />
|
|
||||||
<ClCompile Include="ObjGeoLayerData.cpp" />
|
|
||||||
<ClCompile Include="ObjSeismic.cpp" />
|
|
||||||
<ClCompile Include="ObjWell.cpp" />
|
|
||||||
<ClCompile Include="ObjWellGraphicsHead.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLog.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogBIN.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogFMT.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogINP.cpp" />
|
|
||||||
<ClCompile Include="ObjWelllogRound.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogTABLE.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogTDT.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogTrack.cpp" />
|
|
||||||
<ClCompile Include="ObjWellLogWavefile.cpp" />
|
|
||||||
<ClCompile Include="ObjWellRulerTrack.cpp" />
|
|
||||||
<ClCompile Include="ObjWellTrack.cpp" />
|
|
||||||
<ClCompile Include="ObjWellTrajectory.cpp" />
|
|
||||||
<ClCompile Include="ObjWordsResult.cpp" />
|
|
||||||
<ClCompile Include="PointProperty.cpp" />
|
|
||||||
<ClCompile Include="Project.cpp" />
|
|
||||||
<ClCompile Include="TextProperty.cpp" />
|
|
||||||
<ClCompile Include="ViewInfoMetaProperty.cpp" />
|
|
||||||
<ClCompile Include="Well.cpp" />
|
|
||||||
<ClCompile Include="WelllogRound.cpp" />
|
|
||||||
<ClCompile Include="WellLogWorkflowDataModel.cpp" />
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllog.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllog.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWellTrajectory.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWellTrajectory.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWellRulerTrack.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWellRulerTrack.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogTDT.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogTDT.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogTABLE.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogTABLE.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogRound.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogRound.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogINP.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogINP.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogFMT.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogFMT.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogBIN.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogBIN.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWelllogWavefile.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWelllogWavefile.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjWellLogTrack.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjWellLogTrack.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Debug\moc_ObjectEvent.cpp">
|
|
||||||
<Filter>Generated Files\Debug</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="GeneratedFiles\Release\moc_ObjectEvent.cpp">
|
|
||||||
<Filter>Generated Files\Release</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CurveFillProperty.cpp">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="MyWelllogRound.cpp">
|
|
||||||
<Filter>Generated Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="..\include\BaseLineFillProperty.h" />
|
|
||||||
<ClInclude Include="..\include\ColorInterpolate.h" />
|
|
||||||
<ClInclude Include="..\include\CurveLineLog.h" />
|
|
||||||
<ClInclude Include="..\include\CustomPropertyRegister.h" />
|
|
||||||
<ClInclude Include="..\include\DialogFactory.h" />
|
|
||||||
<ClInclude Include="..\include\GeoStratificationProperty.h" />
|
|
||||||
<ClInclude Include="..\include\Interpolate.h" />
|
|
||||||
<ClInclude Include="..\include\MacroInterpreter.h" />
|
|
||||||
<ClInclude Include="..\include\ObjBaseObject.h" />
|
|
||||||
<ClInclude Include="..\include\ObjCurve.h" />
|
|
||||||
<ClInclude Include="..\include\ObjRegression.h" />
|
|
||||||
<ClInclude Include="..\include\ObjGeoLayerData.h" />
|
|
||||||
<ClInclude Include="..\include\Project.h" />
|
|
||||||
<ClInclude Include="..\include\Well.h" />
|
|
||||||
<ClInclude Include="..\include\CurveFillProperty.h" />
|
|
||||||
<ClInclude Include="..\include\DocumentTemplate.h" />
|
|
||||||
<ClInclude Include="..\include\GeologicalStratificationRoot.h" />
|
|
||||||
<ClInclude Include="..\include\GeologicalStratificatonObject.h" />
|
|
||||||
<ClInclude Include="..\include\LineProperty.h" />
|
|
||||||
<ClInclude Include="..\include\ObjBitmap.h" />
|
|
||||||
<ClInclude Include="..\include\ObjectEventEnum.h" />
|
|
||||||
<ClInclude Include="..\include\ObjectFolder.h" />
|
|
||||||
<ClInclude Include="..\include\ObjectIDDescription.h" />
|
|
||||||
<ClInclude Include="..\include\ObjNodeUserData.h" />
|
|
||||||
<ClInclude Include="..\include\OSGDataModel.h" />
|
|
||||||
<ClInclude Include="..\include\PointProperty.h" />
|
|
||||||
<ClInclude Include="..\include\TextProperty.h" />
|
|
||||||
<ClInclude Include="..\include\ViewInfoMetaProperty.h" />
|
|
||||||
<ClInclude Include="..\include\MyWelllogRound.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\ObjWellTrack.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\ObjectID.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\ObjectViewInfo.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\WellLogWorkflowDataModel.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\ObjectGenralFactory.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\ObjSeismic.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\ObjProject.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<CustomBuild Include="..\include\ItemGroupPropertyies.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjRegressionFormula.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjGraphicsHeadCell.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjContourImpl.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjCoreImage.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjDiscreteWellLog.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjPixmapItem.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWordsResult.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjRect.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjPolygon.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjEllipse.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjCrossplot.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjGeostratums.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</CustomBuild>
|
|
||||||
<CustomBuild Include="..\include\BaseObject.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</CustomBuild>
|
|
||||||
<CustomBuild Include="..\include\ObjWell.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</CustomBuild>
|
|
||||||
<CustomBuild Include="..\include\ObjWellGraphicsHead.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</CustomBuild>
|
|
||||||
<CustomBuild Include="..\include\ObjWelllog.h" />
|
|
||||||
<CustomBuild Include="..\include\WelllogRound.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWellTrajectory.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWellRulerTrack.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogTDT.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogTABLE.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogRound.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogINP.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogFMT.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogBIN.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWelllogWavefile.h" />
|
|
||||||
<CustomBuild Include="..\include\ObjWellLogTrack.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</CustomBuild>
|
|
||||||
<CustomBuild Include="..\include\ObjectEvent.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</CustomBuild>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\paiobjectmodel.libinfo" />
|
|
||||||
<None Include="OSGDataModel.pro" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h</Extensions>
|
|
||||||
<ParseFiles>true</ParseFiles>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Generated Files">
|
|
||||||
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
|
|
||||||
<Extensions>moc;h;cpp</Extensions>
|
|
||||||
<ParseFiles>true</ParseFiles>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Generated Files\Debug">
|
|
||||||
<UniqueIdentifier>{da09c0db-14b6-45b4-8ac6-c92eb7b93451}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;moc</Extensions>
|
|
||||||
<SourceControlFiles>False</SourceControlFiles>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Generated Files\Release">
|
|
||||||
<UniqueIdentifier>{925a2982-4521-4736-babb-dbe6c3755133}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;moc</Extensions>
|
|
||||||
<SourceControlFiles>False</SourceControlFiles>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<QTDIR>D:\Qt4.7.1</QTDIR>
|
|
||||||
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
|
|
||||||
<LocalDebuggerCommand>D:\LogPlus\bin\LogPlus.exe</LocalDebuggerCommand>
|
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<QTDIR>D:\Qt4.7.1</QTDIR>
|
|
||||||
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -37,10 +37,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,13 +68,13 @@ INCLUDEPATH += ../../Workflow/include \
|
||||||
../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../Bin -lDataMgrd
|
LIBS += -L$$PWD/../../Bin -lDataMgrd
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../BinR -lOSGDataModel
|
||||||
LIBS += -L../../Bin -lDataMgr
|
LIBS += -L$$PWD/../../BinR -lDataMgr
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,10 +37,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,15 +70,15 @@ INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
||||||
INCLUDEPATH += ../../Workflow/WFCrystal/SysUtility/utils/include
|
INCLUDEPATH += ../../Workflow/WFCrystal/SysUtility/utils/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/IOService/include
|
INCLUDEPATH += ../../Workflow/WFEngine/IOService/include
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../Bin -lDataMgrd
|
LIBS += -L$$PWD/../../Bin -lDataMgrd
|
||||||
LIBS += -L../../Bin -lWFEngined
|
LIBS += -L$$PWD/../../Bin -lWFEngined
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../BinR -lOSGDataModel
|
||||||
LIBS += -L../../Bin -lDataMgr
|
LIBS += -L$$PWD/../../BinR -lDataMgr
|
||||||
LIBS += -L../../Bin -lWFEngine
|
LIBS += -L$$PWD/../../BinR -lWFEngine
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -114,13 +114,13 @@ INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
||||||
INCLUDEPATH += ../../Workflow/WFWidget/include
|
INCLUDEPATH += ../../Workflow/WFWidget/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../Bin -lDataMgrd
|
LIBS += -L$$PWD/../../Bin -lDataMgrd
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../BinR -lOSGDataModel
|
||||||
LIBS += -L../../Bin -lDataMgr
|
LIBS += -L$$PWD/../../BinR -lDataMgr
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,10 +42,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,7 +78,7 @@ INCLUDEPATH += ./SysUtility/utils/include
|
||||||
INCLUDEPATH += ./SysUtility/configuration/include
|
INCLUDEPATH += ./SysUtility/configuration/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,7 +98,7 @@ INCLUDEPATH += ../WFCrystal/Crystal/include
|
||||||
INCLUDEPATH += ../WFCrystal/SysUtility/utils/include
|
INCLUDEPATH += ../WFCrystal/SysUtility/utils/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lWFCrystald
|
LIBS += -L$$PWD/../../Bin -lWFCrystald
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lWFCrystal
|
LIBS += -L$$PWD/../../BinR -lWFCrystal
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,10 +38,10 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../../Bin
|
DESTDIR = $$PWD/../../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../../Bin
|
DESTDIR = $$PWD/../../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,7 +109,7 @@ INCLUDEPATH += ../../WFCrystal/SysUtility/configuration/include
|
||||||
INCLUDEPATH += ../../WFCrystal/SysUtility/utils/include
|
INCLUDEPATH += ../../WFCrystal/SysUtility/utils/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../../Bin -lWFCrystald
|
LIBS += -L$$PWD/../../../Bin -lWFCrystald
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../../Bin -lWFCrystal
|
LIBS += -L$$PWD/../../../BinR -lWFCrystal
|
||||||
}
|
}
|
||||||
|
|
|
||||||
326
app/fdsa4_test/CStringType.cpp
Normal file
326
app/fdsa4_test/CStringType.cpp
Normal file
|
|
@ -0,0 +1,326 @@
|
||||||
|
#include "CStringType.h"
|
||||||
|
#include <QLabel>
|
||||||
|
char *m_temp=NULL;
|
||||||
|
CString::CString(const char *str)
|
||||||
|
{
|
||||||
|
m_temp=NULL;
|
||||||
|
if(str==NULL)
|
||||||
|
m_data ="";
|
||||||
|
else
|
||||||
|
m_data=QString::fromLocal8Bit(str);
|
||||||
|
}
|
||||||
|
CString::CString(const QString str)
|
||||||
|
{
|
||||||
|
m_temp=NULL;
|
||||||
|
if(str==NULL)
|
||||||
|
m_data ="";
|
||||||
|
else
|
||||||
|
m_data=str;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString::~CString()
|
||||||
|
{
|
||||||
|
if(m_temp) delete m_temp;
|
||||||
|
m_temp=NULL;
|
||||||
|
};
|
||||||
|
void CString::Empty()
|
||||||
|
{
|
||||||
|
m_data ="";
|
||||||
|
}
|
||||||
|
|
||||||
|
CString::CString(const CString &other)
|
||||||
|
{
|
||||||
|
m_temp=NULL;
|
||||||
|
m_data=other.m_data;
|
||||||
|
}
|
||||||
|
int CString::GetLength()const
|
||||||
|
{
|
||||||
|
return m_data.length();
|
||||||
|
}
|
||||||
|
int CString::Find(char *str)
|
||||||
|
{
|
||||||
|
std::string dataStr=m_data.toStdString();
|
||||||
|
return dataStr.find(str);
|
||||||
|
}
|
||||||
|
int CString::Find(CString &another)
|
||||||
|
{
|
||||||
|
return m_data.toStdString().find(another.m_data.toStdString());
|
||||||
|
}
|
||||||
|
int CString::Find(char str)
|
||||||
|
{
|
||||||
|
std::string dataStr=m_data.toStdString();
|
||||||
|
return dataStr.find(str);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
|
||||||
|
*/
|
||||||
|
int CString::Find(char str[],int start)
|
||||||
|
{
|
||||||
|
std::string dataStr=m_data.toStdString();
|
||||||
|
int npos=dataStr.find(str);
|
||||||
|
if(npos==-1)
|
||||||
|
return -1;
|
||||||
|
if(npos<start)
|
||||||
|
return -1;
|
||||||
|
return dataStr.find(str);
|
||||||
|
}
|
||||||
|
int CString::ReverseFind(char ch)
|
||||||
|
{
|
||||||
|
int index=m_data.lastIndexOf(ch);
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int CString::Insert(int pos ,const CString Sctr)
|
||||||
|
{
|
||||||
|
m_data.insert(pos,Sctr.m_data);
|
||||||
|
return m_data.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CString::Replace(const char *Src,const char *Dest)
|
||||||
|
{
|
||||||
|
int length=((std::string)Src).length();
|
||||||
|
QString srcStr=QString::fromLocal8Bit(Src);
|
||||||
|
QString destStr=QString::fromLocal8Bit(Dest);
|
||||||
|
m_data.replace(srcStr,destStr);
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
void CString::Delete(int fromIndex,int length)
|
||||||
|
{
|
||||||
|
m_data=m_data.remove(fromIndex,length);
|
||||||
|
}
|
||||||
|
CString & CString::TrimLeft()
|
||||||
|
{
|
||||||
|
std::string findStr=" ";
|
||||||
|
std::string tempstr=m_data.toStdString();
|
||||||
|
QString temp=m_data;
|
||||||
|
vector<char>StrVector;
|
||||||
|
int left=0;
|
||||||
|
for (int i=0;i<tempstr.length();i++)
|
||||||
|
{
|
||||||
|
if(tempstr.at(i)==findStr.at(0)) {
|
||||||
|
left++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
m_data=temp.mid(left);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString & CString::MakeUpper()
|
||||||
|
{
|
||||||
|
m_data=m_data.toUpper();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString& CString::MakeLower()
|
||||||
|
{
|
||||||
|
m_data=m_data.toLower();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString & CString::TrimRight()
|
||||||
|
{
|
||||||
|
std::string findStr=" ";
|
||||||
|
std::string tempstr=m_data.toStdString();
|
||||||
|
QString temp=m_data;
|
||||||
|
int flag=0;
|
||||||
|
for (int i=tempstr.length()-1;i>-1;i--)
|
||||||
|
{
|
||||||
|
if(tempstr[i]==findStr.at(0)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
flag=i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_data=temp.left(flag+1);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
bool CString::operator==(const char* other )
|
||||||
|
{
|
||||||
|
QString srcStr=QString::fromLocal8Bit(other);
|
||||||
|
if(this->m_data==srcStr)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
bool CString::operator!=(const char* other )
|
||||||
|
{
|
||||||
|
QString srcStr=QString::fromLocal8Bit(other);
|
||||||
|
if(this->m_data!=srcStr)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
char CString::operator[](int i)
|
||||||
|
{
|
||||||
|
char ch=GetChar(i);
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
CString CString::Right(int count)const
|
||||||
|
{
|
||||||
|
if (count<0)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
}
|
||||||
|
if (count>m_data.length())
|
||||||
|
{
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
int length=m_data.length();
|
||||||
|
QString temp=m_data;
|
||||||
|
QString lastdata=temp.remove(0,length-count);
|
||||||
|
CString RightStr(lastdata);
|
||||||
|
return RightStr;
|
||||||
|
}
|
||||||
|
CString CString::Mid(int pos,int count)const
|
||||||
|
{
|
||||||
|
if (count<0)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
}
|
||||||
|
QString temp=m_data.mid(pos,count);
|
||||||
|
CString mstr(temp);
|
||||||
|
return mstr;
|
||||||
|
}
|
||||||
|
CString CString::Mid(int pos)const
|
||||||
|
{
|
||||||
|
QString temp=m_data.mid(pos);
|
||||||
|
CString mstr(temp);
|
||||||
|
return mstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString CString::Left(int count)const
|
||||||
|
{
|
||||||
|
if (count<0)
|
||||||
|
{
|
||||||
|
count=0;
|
||||||
|
}
|
||||||
|
if (count>m_data.length())
|
||||||
|
{
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
int length=m_data.length();
|
||||||
|
QString temp=m_data;
|
||||||
|
QString lastdata=temp.remove(count,length-count);
|
||||||
|
CString leftStr(lastdata);
|
||||||
|
return leftStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString CString::operator + (const CString& SrcStr)
|
||||||
|
{
|
||||||
|
CString str;
|
||||||
|
str.m_data=m_data+SrcStr.m_data;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
CString CString::operator = (const QString& SrcStr)
|
||||||
|
{
|
||||||
|
CString str;
|
||||||
|
str.m_data=SrcStr;
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
CString CString::operator += (CString& SrcStr)
|
||||||
|
{
|
||||||
|
m_data = m_data+SrcStr.m_data ;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
CString CString::operator += (const CString& SrcStr)
|
||||||
|
{
|
||||||
|
m_data = m_data+SrcStr.m_data ;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
bool CString::operator!=(const CString& other )
|
||||||
|
{
|
||||||
|
return m_data!=other.m_data;
|
||||||
|
}
|
||||||
|
bool CString::operator==(const CString& other )
|
||||||
|
{
|
||||||
|
return m_data==other.m_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CString::Alloc(int len)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
char* CString::GetString() const
|
||||||
|
{
|
||||||
|
int length=((string)(m_data.toLocal8Bit().data())).length();
|
||||||
|
if(m_temp) delete m_temp;
|
||||||
|
m_temp=new char[length+1];
|
||||||
|
// Alloc(length);
|
||||||
|
strcpy(m_temp,m_data.toLocal8Bit().data());
|
||||||
|
return m_temp;
|
||||||
|
}
|
||||||
|
char CString::GetChar(int n)
|
||||||
|
{
|
||||||
|
return GetString()[n];
|
||||||
|
}
|
||||||
|
char CString::GetAt(int n)
|
||||||
|
{
|
||||||
|
return GetChar(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CString::Format(const char *format,...)
|
||||||
|
{
|
||||||
|
//char *str=GetString();
|
||||||
|
va_list args;
|
||||||
|
va_start(args,format);
|
||||||
|
m_data.vsprintf(format,args);
|
||||||
|
char *buf=new char[2*strlen(m_data.toStdString().c_str())+1];
|
||||||
|
vsprintf(buf,format,args);
|
||||||
|
m_data=buf;
|
||||||
|
delete buf;
|
||||||
|
va_end(args);
|
||||||
|
}
|
||||||
|
void ShowMessage(QString mess)
|
||||||
|
{
|
||||||
|
QDialog dialog(NULL);
|
||||||
|
dialog.setModal(false);
|
||||||
|
Qt::WindowFlags flags = dialog.windowFlags();
|
||||||
|
flags |= Qt::WindowStaysOnTopHint;
|
||||||
|
flags &= ~Qt::WindowContextHelpButtonHint;
|
||||||
|
dialog.setWindowFlags(flags);
|
||||||
|
dialog.setWindowTitle("提示");
|
||||||
|
QFormLayout form(&dialog);
|
||||||
|
QLabel edit(&dialog);
|
||||||
|
form.addRow(&edit);
|
||||||
|
edit.setText(mess);
|
||||||
|
// QDialogButtonBox buttonBox(QDialogButtonBox::Yes,Qt::Horizontal, &dialog);
|
||||||
|
// form.addRow(&buttonBox);
|
||||||
|
// if(buttonBox.button(QDialogButtonBox::Yes)) buttonBox.button(QDialogButtonBox::Yes)->setText("退出");
|
||||||
|
// QObject::connect(buttonBox.button(QDialogButtonBox::Yes), SIGNAL(clicked()), NULL, SLOT(reject()));
|
||||||
|
dialog.show();
|
||||||
|
dialog.exec();
|
||||||
|
}
|
||||||
|
int AfxMessageBox(CString str)
|
||||||
|
{
|
||||||
|
QDialog dialog(NULL);
|
||||||
|
dialog.setModal(false);
|
||||||
|
Qt::WindowFlags flags = dialog.windowFlags();
|
||||||
|
flags |= Qt::WindowStaysOnTopHint;
|
||||||
|
flags &= ~Qt::WindowContextHelpButtonHint;
|
||||||
|
dialog.setWindowFlags(flags);
|
||||||
|
dialog.setWindowTitle("提示");
|
||||||
|
QFormLayout form(&dialog);
|
||||||
|
form.addWidget(new QLabel(str.GetString()));
|
||||||
|
// dialog.show();
|
||||||
|
if (dialog.exec() == QDialog::Accepted) {
|
||||||
|
// Do something here
|
||||||
|
}
|
||||||
|
// return MessageBox(NULL,"提示",str.GetString(),NULL );
|
||||||
|
// QString cstr=str.GetString();
|
||||||
|
// QMessageBox msgBox;
|
||||||
|
// msgBox.setText(cstr);
|
||||||
|
// return msgBox.exec();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType)
|
||||||
|
{
|
||||||
|
if (!parent)
|
||||||
|
{
|
||||||
|
char *tempName=lpCaption;
|
||||||
|
QString addStr=QString::fromLocal8Bit(tempName);
|
||||||
|
return QMessageBox::information(NULL,lpText,addStr,QMessageBox::Ok);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
168
app/fdsa4_test/CStringType.h
Normal file
168
app/fdsa4_test/CStringType.h
Normal file
|
|
@ -0,0 +1,168 @@
|
||||||
|
/**
|
||||||
|
* @file CStringTyle.h
|
||||||
|
* @brief CString数据自定义、井以及井次结构体
|
||||||
|
* @date 2014-10-10
|
||||||
|
* @author: ZhouWenfei
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PAI_FRAME_CSTRING_H__
|
||||||
|
#define PAI_FRAME_CSTRING_H__
|
||||||
|
#pragma once
|
||||||
|
#include <iostream>
|
||||||
|
#include <QString>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QFormLayout>
|
||||||
|
#include <QTextEdit>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QFormLayout>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
#pragma warning( push ,0)
|
||||||
|
//#include "BaseFunExport.h"
|
||||||
|
#pragma warning( pop )
|
||||||
|
//#ifdef MessageBox
|
||||||
|
//#define MessageBox MessageBox
|
||||||
|
//#endif
|
||||||
|
#define MAX_PATH 1024
|
||||||
|
//#define _MAX_PATH 1024
|
||||||
|
#define MaxCurve 1024
|
||||||
|
#define curve_name_len 256
|
||||||
|
#define curve_unit_len 256
|
||||||
|
#define MIN_RANK rank_char
|
||||||
|
#define MAX_RANK rank_longlong
|
||||||
|
|
||||||
|
#define INTMAX_RANK rank_longlong
|
||||||
|
#define SIZE_T_RANK rank_long
|
||||||
|
#define PTRDIFF_T_RANK rank_long
|
||||||
|
#define MB_OK QMessageBox::Ok
|
||||||
|
typedef unsigned short WORD;
|
||||||
|
#ifdef WIN32
|
||||||
|
typedef unsigned long DWORD;
|
||||||
|
typedef DWORD *LPDWORD;
|
||||||
|
typedef void *HANDLE;
|
||||||
|
#else
|
||||||
|
typedef unsigned int DWORD;
|
||||||
|
typedef DWORD *LPDWORD;
|
||||||
|
typedef void *HANDLE;
|
||||||
|
typedef unsigned char byte;
|
||||||
|
typedef bool BOOL;
|
||||||
|
#endif
|
||||||
|
typedef unsigned char BYTE;
|
||||||
|
typedef char* LPSTR;
|
||||||
|
typedef void* LPVOID;
|
||||||
|
|
||||||
|
class CString;
|
||||||
|
typedef QList<CString> CStringList;
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//#define REPR_INT 1
|
||||||
|
//#define REPR_SHORT 2
|
||||||
|
//#define REPR_LONG 3
|
||||||
|
//#define REPR_FLOAT 4
|
||||||
|
//#define REPR_DOUBLE 5
|
||||||
|
//#define REPR_STRING 6
|
||||||
|
//#define REPR_CHAR 7
|
||||||
|
//#define REPR_UCHAR 8
|
||||||
|
//#define REPR_USHORT 9
|
||||||
|
//#define REPR_UINT 10
|
||||||
|
//#define REPR_ULONG 11
|
||||||
|
//class BASEFUN_EXPORT CString;
|
||||||
|
|
||||||
|
//构建CString
|
||||||
|
class CString
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CString(const char *str = nullptr);
|
||||||
|
CString(const QString str);
|
||||||
|
CString(const CString &other);
|
||||||
|
~CString();
|
||||||
|
|
||||||
|
int GetLength()const;
|
||||||
|
int Find(char *str);
|
||||||
|
int Find(char str);
|
||||||
|
int Find(CString &another);
|
||||||
|
int Find(char str[],int start);
|
||||||
|
int ReverseFind(char ch);
|
||||||
|
int Insert(int pos ,const CString Sctr);
|
||||||
|
int Replace(const char *Src,const char *Dest);
|
||||||
|
CString & TrimLeft();
|
||||||
|
CString & MakeUpper();
|
||||||
|
CString& MakeLower();
|
||||||
|
CString & TrimRight();
|
||||||
|
bool operator==(const char* other );
|
||||||
|
bool operator!=(const char* other );
|
||||||
|
bool operator==(const CString& other );
|
||||||
|
bool operator!=(const CString& other );
|
||||||
|
char operator[](int i);
|
||||||
|
CString Right(int count)const;
|
||||||
|
CString Left(int count)const;
|
||||||
|
// CString operator = (const QString& SrcStr) ;
|
||||||
|
CString operator + (const CString& SrcStr) ;
|
||||||
|
CString operator += (CString& SrcStr) ;
|
||||||
|
CString operator += (const CString& SrcStr) ;
|
||||||
|
char* GetString()const;
|
||||||
|
char GetChar(int n);
|
||||||
|
char GetAt(int n);
|
||||||
|
CString Mid(int pos,int count)const;
|
||||||
|
CString Mid(int pos)const;
|
||||||
|
void Format(const char *format,...);
|
||||||
|
void Delete(int fromIndex,int length);
|
||||||
|
// const char *m_temp;
|
||||||
|
void Alloc(int len);
|
||||||
|
void Empty();
|
||||||
|
private:
|
||||||
|
QString m_data;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
enum flags {
|
||||||
|
FL_SPLAT0 = 0x00,/* Drop the value, do not assign */
|
||||||
|
|
||||||
|
FL_SPLAT = 0x01,/* Drop the value, do not assign */
|
||||||
|
FL_INV = 0x02,/* Character-set with inverse */
|
||||||
|
FL_WIDTH = 0x04,/* Field width specified */
|
||||||
|
FL_MINUS = 0x08,/* Negative number */
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ranks {
|
||||||
|
|
||||||
|
rank_char = -2,
|
||||||
|
rank_short = -1,
|
||||||
|
rank_int = 0,
|
||||||
|
rank_long = 1,
|
||||||
|
rank_longlong = 2,
|
||||||
|
rank_ptr = INT_MAX/* Special value used for pointers */
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
enum bail {
|
||||||
|
|
||||||
|
bail_none = 0,/* No error condition */
|
||||||
|
bail_eof,/* Hit EOF */
|
||||||
|
bail_err/* Conversion mismatch */
|
||||||
|
|
||||||
|
};
|
||||||
|
int AfxMessageBox(CString str);
|
||||||
|
int MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType);
|
||||||
|
void ShowMessage(QString mess);
|
||||||
|
|
||||||
|
//构建AfxMessageBox()函数
|
||||||
|
//extern int BASEFUN_EXPORT AfxMessageBox(CString str);
|
||||||
|
//extern int BASEFUN_EXPORT MessageBox(QWidget *parent,char lpText[128],char*lpCaption, int UINTuType);
|
||||||
|
// using namespace pai::graphics;
|
||||||
|
#endif
|
||||||
|
|
||||||
207
app/fdsa4_test/cloudalgorithmaccess.cpp
Normal file
207
app/fdsa4_test/cloudalgorithmaccess.cpp
Normal file
|
|
@ -0,0 +1,207 @@
|
||||||
|
#include "cloudalgorithmaccess.h"
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QEventLoop>
|
||||||
|
#include <QTimer>
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QtNetwork/QTcpSocket>
|
||||||
|
#include <QtNetwork/QNetworkProxy>
|
||||||
|
|
||||||
|
CloudAlgorithmAccess::CloudAlgorithmAccess(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
m_tcpSocket = new QTcpSocket(this);
|
||||||
|
m_responseResult.clear();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray CloudAlgorithmAccess::sendHttpPost(const QString &host, int port, const QString &path, const QByteArray &data)
|
||||||
|
{
|
||||||
|
// 连接服务器
|
||||||
|
m_tcpSocket->connectToHost(host, port);
|
||||||
|
if (!m_tcpSocket->waitForConnected(5000)) {
|
||||||
|
qDebug() << "Connection failed!";
|
||||||
|
return QByteArray(); // 连接失败
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建HTTP请求
|
||||||
|
QByteArray request =
|
||||||
|
"POST " + path.toUtf8() + " HTTP/1.1\r\n" +
|
||||||
|
"Host: " + host.toUtf8() + "\r\n" +
|
||||||
|
"Content-Type: application/json\r\n" +
|
||||||
|
"Content-Length: " + QByteArray::number(data.length()) + "\r\n" +
|
||||||
|
"Connection: close\r\n" +
|
||||||
|
"\r\n" +
|
||||||
|
data;
|
||||||
|
|
||||||
|
// 发送请求
|
||||||
|
m_tcpSocket->write(request); // 将request数据写入套接字的写缓冲区,并尝试发送。
|
||||||
|
m_tcpSocket->waitForBytesWritten(5000); // 等待直到数据被实际发送(即写入网络)或超时5秒。
|
||||||
|
|
||||||
|
// 等待响应
|
||||||
|
QByteArray response;
|
||||||
|
while ( m_tcpSocket->waitForReadyRead(5000)) {
|
||||||
|
response.append(m_tcpSocket->readAll());
|
||||||
|
if (m_tcpSocket->bytesAvailable() == 0 && ! m_tcpSocket->isValid()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_tcpSocket->close();
|
||||||
|
|
||||||
|
// 提取响应体(跳过HTTP头)尝试标准分隔符 \r\n\r\n
|
||||||
|
int headerEnd = response.indexOf("\r\n\r\n");
|
||||||
|
if (headerEnd != -1) {
|
||||||
|
return response.mid(headerEnd + 4);
|
||||||
|
}
|
||||||
|
// 尝试 \n\n(某些服务器可能使用)
|
||||||
|
headerEnd = response.indexOf("\n\n");
|
||||||
|
if (headerEnd != -1) {
|
||||||
|
return response.mid(headerEnd + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果找不到标准分隔符,返回原始内容
|
||||||
|
qDebug() << "警告:无法解析HTTP响应格式,返回原始内容";
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
///计算孔隙度的json拼接样例
|
||||||
|
QString CloudAlgorithmAccess::buildJson(const QVector<double>& depths, const QVector<double>& values)
|
||||||
|
{
|
||||||
|
QString json = "{";
|
||||||
|
json += QString::fromUtf8("\"methodName\":\"根据声波时差计算(默认)\",");
|
||||||
|
json += "\"coefficient\":{\"DTpm\":\"49\",\"DTpf\":\"188.9\"},";
|
||||||
|
json += "\"curvesInfo\":{\"curveSource\":\"\",\"mdList\":[";
|
||||||
|
|
||||||
|
// 添加深度数据
|
||||||
|
for (int i = 0; i < depths.size(); i++) {
|
||||||
|
if (i > 0) json += ",";
|
||||||
|
json += QString::number(depths[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
json += QString::fromUtf8("],\"curveList\":[{\"curveName\":\"纵波时差\",\"minValue\":0,\"maxValue\":0,\"valueList\":[");
|
||||||
|
|
||||||
|
// 添加声波时差数据
|
||||||
|
for (int i = 0; i < values.size(); i++) {
|
||||||
|
if (i > 0) json += ",";
|
||||||
|
json += QString::number(values[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
json += "]}]}}";
|
||||||
|
qDebug() << "json:" << json;
|
||||||
|
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 解析JSON数据的函数
|
||||||
|
int CloudAlgorithmAccess::parseResponseData(QString jsonData) {
|
||||||
|
//QString jsonData = QString::fromUtf8(data);
|
||||||
|
m_responseResult.clear();
|
||||||
|
int result = ParseSuccess;
|
||||||
|
|
||||||
|
// 检查响应码
|
||||||
|
int codePos = jsonData.indexOf("\"code\":");
|
||||||
|
if (codePos == -1) {
|
||||||
|
result = ParseNoCode;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
int codeStart = jsonData.indexOf(":", codePos) + 1;
|
||||||
|
int codeEnd = jsonData.indexOf(",", codeStart);
|
||||||
|
QString codeStr = jsonData.mid(codeStart, codeEnd - codeStart).trimmed();
|
||||||
|
|
||||||
|
int code = codeStr.toInt();
|
||||||
|
if (code != 200) {
|
||||||
|
result = ParseCodeError;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找data数组开始位置
|
||||||
|
int dataStartPos = jsonData.indexOf("\"data\":[");
|
||||||
|
if (dataStartPos == -1) {
|
||||||
|
result = ParseDataError;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
dataStartPos = jsonData.indexOf("[", dataStartPos) + 1;
|
||||||
|
|
||||||
|
// 解析每个数据项
|
||||||
|
int pos = dataStartPos;
|
||||||
|
while (pos < jsonData.length()) {
|
||||||
|
// 查找对象开始
|
||||||
|
int objStart = jsonData.indexOf("{", pos);
|
||||||
|
if (objStart == -1) break;
|
||||||
|
|
||||||
|
// 查找对象结束
|
||||||
|
int objEnd = jsonData.indexOf("}", objStart);
|
||||||
|
if (objEnd == -1) break;
|
||||||
|
|
||||||
|
QString objStr = jsonData.mid(objStart, objEnd - objStart + 1);
|
||||||
|
|
||||||
|
ResponseData data;
|
||||||
|
|
||||||
|
// 解析depth字段
|
||||||
|
int depthPos = objStr.indexOf("\"depth\":");
|
||||||
|
if (depthPos != -1) {
|
||||||
|
int depthStart = objStr.indexOf(":", depthPos) + 1;
|
||||||
|
int depthEnd = objStr.indexOf(",", depthStart);
|
||||||
|
if (depthEnd == -1) depthEnd = objStr.indexOf("}", depthStart);
|
||||||
|
QString depthStr = objStr.mid(depthStart, depthEnd - depthStart).trimmed();
|
||||||
|
data.depth = depthStr.toDouble();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析value字段
|
||||||
|
int valuePos = objStr.indexOf("\"value\":");
|
||||||
|
if (valuePos != -1) {
|
||||||
|
int valueStart = objStr.indexOf(":", valuePos) + 1;
|
||||||
|
int valueEnd = objStr.indexOf(",", valueStart);
|
||||||
|
if (valueEnd == -1) valueEnd = objStr.indexOf("}", valueStart);
|
||||||
|
QString valueStr = objStr.mid(valueStart, valueEnd - valueStart).trimmed();
|
||||||
|
data.value = valueStr.toDouble();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析overlying_Pressure字段
|
||||||
|
int pressurePos = objStr.indexOf("\"overlying_Pressure\":");
|
||||||
|
if (pressurePos != -1) {
|
||||||
|
int pressureStart = objStr.indexOf(":", pressurePos) + 1;
|
||||||
|
int pressureEnd = objStr.indexOf(",", pressureStart);
|
||||||
|
if (pressureEnd == -1) pressureEnd = objStr.indexOf("}", pressureStart);
|
||||||
|
QString pressureStr = objStr.mid(pressureStart, pressureEnd - pressureStart).trimmed();
|
||||||
|
data.overlying_Pressure = pressureStr.toDouble();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析dp字段
|
||||||
|
int dpPos = objStr.indexOf("\"dp\":");
|
||||||
|
if (dpPos != -1) {
|
||||||
|
int dpStart = objStr.indexOf(":", dpPos) + 1;
|
||||||
|
int dpEnd = objStr.indexOf(",", dpStart);
|
||||||
|
if (dpEnd == -1) dpEnd = objStr.indexOf("}", dpStart);
|
||||||
|
QString dpStr = objStr.mid(dpStart, dpEnd - dpStart).trimmed();
|
||||||
|
data.dp = dpStr.toDouble();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析dpTrend字段
|
||||||
|
int dpTrendPos = objStr.indexOf("\"dpTrend\":");
|
||||||
|
if (dpTrendPos != -1) {
|
||||||
|
int dpTrendStart = objStr.indexOf(":", dpTrendPos) + 1;
|
||||||
|
int dpTrendEnd = objStr.indexOf(",", dpTrendStart);
|
||||||
|
if (dpTrendEnd == -1) dpTrendEnd = objStr.indexOf("}", dpTrendStart);
|
||||||
|
QString dpTrendStr = objStr.mid(dpTrendStart, dpTrendEnd - dpTrendStart).trimmed();
|
||||||
|
data.dpTrend = dpTrendStr.toDouble();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_responseResult.append(data);
|
||||||
|
pos = objEnd + 1;
|
||||||
|
|
||||||
|
// 检查是否还有下一个对象
|
||||||
|
if (jsonData.indexOf("{", pos) == -1) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QList<ResponseData> &CloudAlgorithmAccess::getResponseResult() const
|
||||||
|
{
|
||||||
|
return m_responseResult;
|
||||||
|
|
||||||
|
}
|
||||||
43
app/fdsa4_test/cloudalgorithmaccess.h
Normal file
43
app/fdsa4_test/cloudalgorithmaccess.h
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
#ifndef CLOUDALGORITHMACCESS_H
|
||||||
|
#define CLOUDALGORITHMACCESS_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtNetwork/QNetworkAccessManager>
|
||||||
|
#include <QtNetwork/QNetworkReply>
|
||||||
|
#include <QVector>
|
||||||
|
class QTcpSocket;
|
||||||
|
// 定义数据结构体
|
||||||
|
struct ResponseData {
|
||||||
|
int depth;
|
||||||
|
double value;
|
||||||
|
double overlying_Pressure;
|
||||||
|
double dp;
|
||||||
|
double dpTrend;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ParseResult{
|
||||||
|
ParseSuccess,
|
||||||
|
ParseNoCode,
|
||||||
|
ParseCodeError,
|
||||||
|
ParseDataError
|
||||||
|
};
|
||||||
|
|
||||||
|
class CloudAlgorithmAccess : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CloudAlgorithmAccess(QObject *parent = 0);
|
||||||
|
QByteArray sendHttpPost(const QString &host, int port, const QString &path, const QByteArray &data);
|
||||||
|
int parseResponseData(QString jsonData);
|
||||||
|
QString buildJson(const QVector<double>& depths, const QVector<double>& values);
|
||||||
|
const QList<ResponseData> &getResponseResult() const ;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QTcpSocket *m_tcpSocket;
|
||||||
|
///响应数据解析完成后放入该容器中
|
||||||
|
QList<ResponseData> m_responseResult;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CLOUDALGORITHMACCESS_H
|
||||||
61
app/fdsa4_test/fdsa4_test.pro
Normal file
61
app/fdsa4_test/fdsa4_test.pro
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
TEMPLATE = lib
|
||||||
|
TARGET = fdsa4_test
|
||||||
|
DEFINES += _TIMESPEC_DEFINED
|
||||||
|
QT += core \
|
||||||
|
gui \
|
||||||
|
network \
|
||||||
|
opengl
|
||||||
|
INCLUDEPATH += ../../common \
|
||||||
|
../../include \
|
||||||
|
# ../../../OSGParts/include \
|
||||||
|
../../Slfio/include \
|
||||||
|
../../BaseFun/include \
|
||||||
|
D:/Python312/include\
|
||||||
|
D:/Python312/Lib/site-packages/numpy/_core/include\
|
||||||
|
$(QTDIR)/include \
|
||||||
|
# d:/OSG3.0.1/include \
|
||||||
|
|
||||||
|
OBJECTS_DIR = ../obj
|
||||||
|
CONFIG(debug, debug|release){
|
||||||
|
DESTDIR = ../../../Bin/app
|
||||||
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
|
} else {
|
||||||
|
DESTDIR = ../../../BinR/app
|
||||||
|
TARGET = $$join(TARGET,,,)
|
||||||
|
}
|
||||||
|
CONFIG += qt warn_off \
|
||||||
|
debug_and_release
|
||||||
|
|
||||||
|
#CONFIG += uitools
|
||||||
|
|
||||||
|
DEFINES += QT_DLL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HeadS += ../include/*.h
|
||||||
|
|
||||||
|
SOURCES += *.cpp
|
||||||
|
HEADERS += \
|
||||||
|
./cloudalgorithmaccess.h \
|
||||||
|
./pythonhandler.h
|
||||||
|
|
||||||
|
|
||||||
|
#CPATH = $$system(pwd)
|
||||||
|
# 目标文件夹
|
||||||
|
#CATEGORY = OSGDataModel
|
||||||
|
CONFIG(debug, debug|release){
|
||||||
|
LIBS += -L../../../Bin -lslfiod
|
||||||
|
LIBS += -L../../../Bin -lBaseFund
|
||||||
|
LIBS += -LD:/Python312/libs -lpython312_d
|
||||||
|
# LIBS += -L$(QTDIR)/lib -lQtNetworkd4
|
||||||
|
# LIBS += -LD:/Qt4.7.1/lib -lQtNetworkd4
|
||||||
|
} else {
|
||||||
|
LIBS += -L../../../BinR -lslfio
|
||||||
|
LIBS += -L../../../BinR -lBaseFun
|
||||||
|
LIBS += -LD:/Python312/libs -lpython312
|
||||||
|
# LIBS += -LD:/Qt4.7.1/lib -lQtNetworkd4
|
||||||
|
# LIBS += -LD:/Qt4.7.1/lib -lQtNetworkd4
|
||||||
|
}
|
||||||
|
|
||||||
|
DISTFILES += \
|
||||||
|
fdsa4_test.py
|
||||||
12
app/fdsa4_test/fdsa4_test.py
Normal file
12
app/fdsa4_test/fdsa4_test.py
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
# This Python file uses the following encoding: utf-8
|
||||||
|
|
||||||
|
# if __name__ == "__main__":
|
||||||
|
# pass
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
def process_arrays(a, b, c, d, e):
|
||||||
|
result = [x + y for x, y in zip(a, b)]
|
||||||
|
return np.array(result), c+d+e
|
||||||
344
app/fdsa4_test/pythonhandler.cpp
Normal file
344
app/fdsa4_test/pythonhandler.cpp
Normal file
|
|
@ -0,0 +1,344 @@
|
||||||
|
#include "pythonhandler.h"
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QProcessEnvironment>
|
||||||
|
|
||||||
|
PythonHandler::PythonHandler(QObject *parent)
|
||||||
|
: QObject(parent)
|
||||||
|
, m_initialized(false)
|
||||||
|
{
|
||||||
|
// 初始化Python
|
||||||
|
if (!this->initialize()) {
|
||||||
|
qDebug() << "Python初始化失败!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PythonHandler::~PythonHandler()
|
||||||
|
{
|
||||||
|
finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
PythonHandler *PythonHandler::getInstance()
|
||||||
|
{
|
||||||
|
static PythonHandler ref;
|
||||||
|
return &ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PythonHandler::initialize()
|
||||||
|
{
|
||||||
|
if (m_initialized) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
setupEnvironment();
|
||||||
|
|
||||||
|
// 初始化Python解释器
|
||||||
|
Py_Initialize();
|
||||||
|
|
||||||
|
if (!Py_IsInitialized()) {
|
||||||
|
qDebug() << "Python初始化失败!";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加Python脚本路径 - 使用绝对路径会更可靠
|
||||||
|
QString currentPath = QCoreApplication::applicationDirPath();
|
||||||
|
QString scriptPath = currentPath + "/python_scripts";
|
||||||
|
|
||||||
|
QString strPy= currentPath + "/" + PYTHON_VER;
|
||||||
|
QString scriptPython2 = strPy + "/DLLs";
|
||||||
|
QString scriptPython3 = strPy + "/Lib";
|
||||||
|
QString scriptPython4 = strPy + "/lib/site-packages";
|
||||||
|
// emit addLog(scriptPath);
|
||||||
|
QString pythonCode = QString(
|
||||||
|
"import sys\n"
|
||||||
|
"import os\n"
|
||||||
|
"print('Python_:', sys.path)\n"
|
||||||
|
"sys.path.append('%1')\n"
|
||||||
|
"sys.path.append('%2')\n"
|
||||||
|
"sys.path.append('%3')\n"
|
||||||
|
"sys.path.append('%4')\n"
|
||||||
|
"sys.path.append('%5')\n"
|
||||||
|
"sys.path.append('%6')\n"
|
||||||
|
"print('end_:', sys.path)\n"
|
||||||
|
"print('========== Python 调试信息 ==========')\n"
|
||||||
|
"print('当前工作目录:', os.getcwd())\n"
|
||||||
|
"print('exepath:', sys.executable)\n"
|
||||||
|
"print('Python 搜索路径:')\n"
|
||||||
|
"for p in sys.path:\n"
|
||||||
|
" print(' -', p)\n"
|
||||||
|
"print('======================================')\n"
|
||||||
|
).arg(currentPath).arg(scriptPath)
|
||||||
|
.arg(strPy).arg(scriptPython2).arg(scriptPython3).arg(scriptPython4);
|
||||||
|
// emit addLog(pythonCode);
|
||||||
|
PyRun_SimpleString(pythonCode.toStdString().c_str());
|
||||||
|
|
||||||
|
m_initialized = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PythonHandler::setupEnvironment()
|
||||||
|
{
|
||||||
|
// 获取程序所在目录
|
||||||
|
QString appDir = QCoreApplication::applicationDirPath();
|
||||||
|
|
||||||
|
// 使用 Qt 的方式设置环境变量
|
||||||
|
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
|
||||||
|
|
||||||
|
// 设置 PYTHONHOME
|
||||||
|
qputenv("PYTHONHOME", appDir.toLocal8Bit());
|
||||||
|
|
||||||
|
QString strPy= appDir + "/" + PYTHON_VER;
|
||||||
|
// 设置 PYTHONPATH
|
||||||
|
QString pythonPath = strPy + "/Lib;" + strPy + "/DLLs;" + strPy + "/python_scripts";
|
||||||
|
qputenv("PYTHONPATH", pythonPath.toLocal8Bit());
|
||||||
|
|
||||||
|
// 修改 PATH(添加程序目录)
|
||||||
|
QString currentPath = QString::fromLocal8Bit(qgetenv("PATH"));
|
||||||
|
QString newPath = appDir + ";" + strPy + "/DLLs;" + currentPath;
|
||||||
|
qputenv("PATH", newPath.toLocal8Bit());
|
||||||
|
|
||||||
|
qDebug() << "环境变量已设置:";
|
||||||
|
qDebug() << "PYTHONHOME:" << qgetenv("PYTHONHOME");
|
||||||
|
qDebug() << "PYTHONPATH:" << qgetenv("PYTHONPATH");
|
||||||
|
}
|
||||||
|
|
||||||
|
void PythonHandler::finalize()
|
||||||
|
{
|
||||||
|
if (m_initialized) {
|
||||||
|
Py_Finalize();
|
||||||
|
m_initialized = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PyObject* PythonHandler::qVariantToPythonObject(const QVariant &value)
|
||||||
|
{
|
||||||
|
switch (value.type()) {
|
||||||
|
case QVariant::Int:
|
||||||
|
return PyLong_FromLong(value.toInt());
|
||||||
|
case QVariant::Double:
|
||||||
|
return PyFloat_FromDouble(value.toDouble());
|
||||||
|
case QVariant::String:
|
||||||
|
return PyUnicode_FromString(value.toString().toStdString().c_str());
|
||||||
|
case QVariant::List: {
|
||||||
|
QVariantList list = value.toList();
|
||||||
|
PyObject* pyList = PyList_New(list.size());
|
||||||
|
for (int i = 0; i < list.size(); ++i) {
|
||||||
|
PyList_SetItem(pyList, i, qVariantToPythonObject(list[i]));
|
||||||
|
}
|
||||||
|
return pyList;
|
||||||
|
}
|
||||||
|
case QVariant::Bool:
|
||||||
|
return PyBool_FromLong(value.toBool() ? 1 : 0);
|
||||||
|
default:
|
||||||
|
return Py_None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant PythonHandler::pythonObjectToQVariant(PyObject *obj)
|
||||||
|
{
|
||||||
|
if (!obj) {
|
||||||
|
qDebug() << "pythonObjectToQVariant: 输入对象为NULL";
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "pythonObjectToQVariant: 转换类型" << Py_TYPE(obj)->tp_name;
|
||||||
|
|
||||||
|
if (PyLong_Check(obj)) {
|
||||||
|
long long value = PyLong_AsLongLong(obj);
|
||||||
|
if (PyErr_Occurred()) {
|
||||||
|
PyErr_Clear();
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
qDebug() << "转换为整数:" << value;
|
||||||
|
return QVariant(value);
|
||||||
|
}
|
||||||
|
else if (PyFloat_Check(obj)) {
|
||||||
|
double value = PyFloat_AsDouble(obj);
|
||||||
|
qDebug() << "转换为浮点数:" << value;
|
||||||
|
return QVariant(value);
|
||||||
|
}
|
||||||
|
else if (PyBool_Check(obj)) {
|
||||||
|
bool value = (obj == Py_True);
|
||||||
|
qDebug() << "转换为布尔值:" << value;
|
||||||
|
return QVariant(value);
|
||||||
|
}
|
||||||
|
else if (PyUnicode_Check(obj)) {
|
||||||
|
QString value = QString::fromUtf8(PyUnicode_AsUTF8(obj));
|
||||||
|
qDebug() << "转换为字符串:" << value;
|
||||||
|
return QVariant(value);
|
||||||
|
}
|
||||||
|
else if (PyList_Check(obj)) {
|
||||||
|
QVariantList list;
|
||||||
|
Py_ssize_t size = PyList_Size(obj);
|
||||||
|
qDebug() << "转换为列表,大小:" << size;
|
||||||
|
|
||||||
|
for (Py_ssize_t i = 0; i < size; ++i) {
|
||||||
|
PyObject* item = PyList_GetItem(obj, i);
|
||||||
|
if (item) {
|
||||||
|
list.append(pythonObjectToQVariant(item));
|
||||||
|
} else {
|
||||||
|
list.append(QVariant());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
else if (PyTuple_Check(obj)) {
|
||||||
|
QVariantList list;
|
||||||
|
Py_ssize_t size = PyTuple_Size(obj);
|
||||||
|
qDebug() << "转换为元组,大小:" << size;
|
||||||
|
|
||||||
|
for (Py_ssize_t i = 0; i < size; ++i) {
|
||||||
|
PyObject* item = PyTuple_GetItem(obj, i);
|
||||||
|
if (item) {
|
||||||
|
list.append(pythonObjectToQVariant(item));
|
||||||
|
} else {
|
||||||
|
list.append(QVariant());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
else if (PyDict_Check(obj)) {
|
||||||
|
QVariantMap map;
|
||||||
|
PyObject* pKeys = PyDict_Keys(obj);
|
||||||
|
Py_ssize_t size = PyList_Size(pKeys);
|
||||||
|
qDebug() << "转换为字典,大小:" << size;
|
||||||
|
|
||||||
|
for (Py_ssize_t i = 0; i < size; ++i) {
|
||||||
|
PyObject* pKey = PyList_GetItem(pKeys, i);
|
||||||
|
PyObject* pValue = PyDict_GetItem(obj, pKey);
|
||||||
|
|
||||||
|
if (pKey && pValue && PyUnicode_Check(pKey)) {
|
||||||
|
QString key = QString::fromUtf8(PyUnicode_AsUTF8(pKey));
|
||||||
|
map[key] = pythonObjectToQVariant(pValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Py_DECREF(pKeys);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
else if (obj == Py_None) {
|
||||||
|
qDebug() << "转换为None";
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qDebug() << "未知类型,返回空QVariant";
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant PythonHandler::executeScript(const QString &scriptPath,
|
||||||
|
const QString &functionName,
|
||||||
|
const QVariantList &args,
|
||||||
|
float* outAtt0all,
|
||||||
|
int nlen)
|
||||||
|
{
|
||||||
|
if (!m_initialized && !initialize()) {
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取全局字典
|
||||||
|
PyObject* pModule = nullptr;
|
||||||
|
PyObject* pFunc = nullptr;
|
||||||
|
PyObject* pArgs = nullptr;
|
||||||
|
PyObject* pResult = nullptr;
|
||||||
|
QVariant result;
|
||||||
|
|
||||||
|
// 导入模块
|
||||||
|
QString moduleName = scriptPath;
|
||||||
|
if (moduleName.endsWith(".py")) {
|
||||||
|
moduleName.chop(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
pModule = PyImport_ImportModule(moduleName.toStdString().c_str());
|
||||||
|
|
||||||
|
if (!pModule) {
|
||||||
|
PyErr_Print();
|
||||||
|
emit addLog("无法导入Python模块:" + moduleName);
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取函数
|
||||||
|
pFunc = PyObject_GetAttrString(pModule, functionName.toStdString().c_str());
|
||||||
|
|
||||||
|
if (!pFunc || !PyCallable_Check(pFunc)) {
|
||||||
|
if (PyErr_Occurred()) {
|
||||||
|
PyErr_Print();
|
||||||
|
}
|
||||||
|
emit addLog("无法找到函数:" + functionName);
|
||||||
|
Py_XDECREF(pFunc);
|
||||||
|
Py_DECREF(pModule);
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建参数
|
||||||
|
pArgs = PyTuple_New(args.size());
|
||||||
|
for (int i = 0; i < args.size(); ++i) {
|
||||||
|
PyTuple_SetItem(pArgs, i, qVariantToPythonObject(args[i]));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 调用函数
|
||||||
|
pResult = PyObject_CallObject(pFunc, pArgs);
|
||||||
|
if (pResult) {
|
||||||
|
if(outAtt0all)
|
||||||
|
{
|
||||||
|
PyObject* array1 = PyTuple_GetItem(pResult, 0);
|
||||||
|
double dR = PyFloat_AsDouble(PyTuple_GetItem(pResult, 1)); // 获取double
|
||||||
|
// // 将numpy数组转换为C++数组(例如使用numpy的API)
|
||||||
|
// PyArrayObject* arr1 = (PyArrayObject*)PyArray_FromAny(array1, NULL, 0, 0, NPY_ARRAY_CARRAY, NULL);
|
||||||
|
PyArrayObject* arr1 = (PyArrayObject*)array1;
|
||||||
|
double* data1 = (double*)PyArray_DATA(arr1);
|
||||||
|
|
||||||
|
int len = PyArray_DIM(arr1, 0); // 获取数组长度
|
||||||
|
if (len>nlen)
|
||||||
|
len = nlen;
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
outAtt0all[i] = data1[i];
|
||||||
|
}
|
||||||
|
#ifdef _RELEASE
|
||||||
|
Py_DECREF(arr1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = pythonObjectToQVariant(pResult);
|
||||||
|
QMap<QString, QVariant> imgResult = result.toMap();
|
||||||
|
emit addLog("1#executeScript" + QString::number(imgResult.size()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
emit addLog("函数调用失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef _RELEASE
|
||||||
|
// 清理
|
||||||
|
Py_XDECREF(pResult);
|
||||||
|
Py_XDECREF(pArgs);
|
||||||
|
Py_XDECREF(pFunc);
|
||||||
|
Py_XDECREF(pModule);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant PythonHandler::executeCode(const QString &code)
|
||||||
|
{
|
||||||
|
if (!m_initialized && !initialize()) {
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
PyObject* pMain = PyImport_AddModule("__main__");
|
||||||
|
PyObject* pDict = PyModule_GetDict(pMain);
|
||||||
|
|
||||||
|
PyObject* pResult = PyRun_String(code.toStdString().c_str(),
|
||||||
|
Py_eval_input,
|
||||||
|
pDict,
|
||||||
|
pDict);
|
||||||
|
|
||||||
|
if (pResult) {
|
||||||
|
QVariant result = pythonObjectToQVariant(pResult);
|
||||||
|
Py_DECREF(pResult);
|
||||||
|
return result;
|
||||||
|
} else {
|
||||||
|
PyErr_Print();
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
}
|
||||||
57
app/fdsa4_test/pythonhandler.h
Normal file
57
app/fdsa4_test/pythonhandler.h
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#ifndef PYTHONHANDLER_H
|
||||||
|
#define PYTHONHANDLER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QString>
|
||||||
|
#include <QVariant>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
// 在包含 Python.h 之前,保存并取消 Qt 的 slots 宏
|
||||||
|
#pragma push_macro("slots")
|
||||||
|
#undef slots
|
||||||
|
|
||||||
|
#include <Python.h>
|
||||||
|
#include <numpy/arrayobject.h>
|
||||||
|
|
||||||
|
// 包含之后恢复 slots 宏(如果需要继续使用 Qt 的 slots)
|
||||||
|
#pragma pop_macro("slots")
|
||||||
|
|
||||||
|
#define PYTHON_VER "Python312"
|
||||||
|
|
||||||
|
class PythonHandler : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit PythonHandler(QObject *parent = nullptr);
|
||||||
|
~PythonHandler();
|
||||||
|
|
||||||
|
static PythonHandler* getInstance();
|
||||||
|
|
||||||
|
// 初始化Python解释器
|
||||||
|
bool initialize();
|
||||||
|
|
||||||
|
void setupEnvironment();
|
||||||
|
|
||||||
|
// 执行Python脚本
|
||||||
|
QVariant executeScript(const QString &scriptPath,
|
||||||
|
const QString &functionName,
|
||||||
|
const QVariantList &args = QVariantList() ,
|
||||||
|
float* outAtt0all = NULL, int nlen = 0);
|
||||||
|
|
||||||
|
// 直接执行Python代码
|
||||||
|
QVariant executeCode(const QString &code);
|
||||||
|
|
||||||
|
// 关闭Python解释器
|
||||||
|
void finalize();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void addLog(QString msg);
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_initialized;
|
||||||
|
QVariant pythonObjectToQVariant(PyObject *obj);
|
||||||
|
PyObject* qVariantToPythonObject(const QVariant &value);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // PYTHONHANDLER_H
|
||||||
424
app/fdsa4_test/test0531.cpp
Normal file
424
app/fdsa4_test/test0531.cpp
Normal file
|
|
@ -0,0 +1,424 @@
|
||||||
|
#include "memrdwt.h"
|
||||||
|
#include "math.h"
|
||||||
|
#include "basefun.h"
|
||||||
|
#include "DepthProgress.h"
|
||||||
|
#include <qvector.h>
|
||||||
|
#include"cloudalgorithmaccess.h"
|
||||||
|
#include <QTextCodec>
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QtNetwork/QNetworkProxyFactory>
|
||||||
|
#include <QLibrary>
|
||||||
|
#include <QtNetwork/QTcpSocket>
|
||||||
|
#include "pythonhandler.h"
|
||||||
|
|
||||||
|
// #undef slots
|
||||||
|
// #if defined(_DEBUG)
|
||||||
|
// #define IS_DEBUG
|
||||||
|
// #undef _DEBUG//防止加载python312_d.lib 先取消掉_DEBUG
|
||||||
|
// #endif
|
||||||
|
// #include <Python.h>
|
||||||
|
// #include <numpy/arrayobject.h>
|
||||||
|
// #if defined(IS_DEBUG)
|
||||||
|
// #define _DEBUG
|
||||||
|
// #endif
|
||||||
|
// #define slots
|
||||||
|
#include <QDebug>
|
||||||
|
/****************************************************数据定义****************************************************************
|
||||||
|
******************************begin****************************/
|
||||||
|
extern "C"{
|
||||||
|
_declspec (dllexport) struct INC_STRU INC={6,
|
||||||
|
"FWGN_W:波名1,raw;;\
|
||||||
|
NWGN_W:波名2,raw;;\
|
||||||
|
RWGN_W:波名3,raw;;\
|
||||||
|
GR:伽马,API;;\
|
||||||
|
NWGN_C:曲线名2,raw;;\
|
||||||
|
RWGN_C:曲线名3,raw;;\
|
||||||
|
"
|
||||||
|
};//输入曲线定义 6:输入6条数据, "数据英文:数据中文,数据单位;;"
|
||||||
|
_declspec (dllexport) struct INP_STRU INP; ///使用GetINValue(RGN_C, 6, 1);函数需要定义该变量
|
||||||
|
|
||||||
|
_declspec (dllexport) struct OUTC_STRU OUTC={2,
|
||||||
|
"ATT:波名1,raw;;\
|
||||||
|
THCAV:曲线名1,raw;;\
|
||||||
|
"
|
||||||
|
};//输出曲线定义 2:输出2条数据, "数据英文:数据中文,数据单位;;"(注:先写波形数据,再写曲线数据)
|
||||||
|
//_declspec (dllexport) struct OUTP_STRU OUTP;
|
||||||
|
|
||||||
|
_declspec (dllexport) struct HD_STRU HD={0.0,9999.0,0.0,0.0,0.0,0.0,0.0,"test0531.INP","test0531.TLP"};//改成自己的工程名
|
||||||
|
|
||||||
|
__declspec (dllexport) struct CONC_STRU CONC={4,
|
||||||
|
"CTH:参数名1,mm;;;;10.5;\
|
||||||
|
CT:参数名2,%;;;;1;\
|
||||||
|
IT:参数名3,mm;;;;9.7;\
|
||||||
|
MT:参数名4,%;;;;1;"
|
||||||
|
};//常量参数定义 4:4个参数, "数据英文:数据中文,单位;;;;参数默认值;"
|
||||||
|
_declspec (dllexport) struct CON_STRU CON={10.5, 1, 9.7, 1};//再次设置默认值(需要与前面相同)
|
||||||
|
|
||||||
|
_declspec (dllexport) struct ErrorInf errorinf;
|
||||||
|
|
||||||
|
//定义输出数据类型(注:需要与前面输出定义一一对应)
|
||||||
|
__declspec (dllexport) struct LogType LogType={WAVE_OBJECT, CURVE_OBJECT};//{WAVE_OBJECT, CURVE_OBJECT}
|
||||||
|
|
||||||
|
__declspec( dllexport ) CMemRdWt MemRdWt;
|
||||||
|
_declspec (dllexport) int test0531();//改成自己的工程名
|
||||||
|
}
|
||||||
|
/****************************************************end****************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct Process_Struct{
|
||||||
|
int Process();
|
||||||
|
};
|
||||||
|
|
||||||
|
//DLL入口函数
|
||||||
|
int test0531()//改成自己的工程名
|
||||||
|
{
|
||||||
|
Process_Struct Process;
|
||||||
|
return Process.Process();
|
||||||
|
}
|
||||||
|
|
||||||
|
//固井结构体(注:此处为表格输出示例)
|
||||||
|
typedef struct ss_struct
|
||||||
|
{
|
||||||
|
int GNO;
|
||||||
|
float GSDEP,GEDEP;
|
||||||
|
int GRESULT;
|
||||||
|
} GUJING;
|
||||||
|
//结论结构体
|
||||||
|
typedef struct s2_struct
|
||||||
|
{
|
||||||
|
int NO;
|
||||||
|
float SDEP,EDEP;
|
||||||
|
QString R;
|
||||||
|
} JIELUN;
|
||||||
|
|
||||||
|
void callPython(float FGN_C, float NGN_C, float RGN_C, float* FGN_W, float* NGN_W, float* Att0all, int nlen)
|
||||||
|
{
|
||||||
|
QVariantList args;
|
||||||
|
QVariantList arg1;
|
||||||
|
QVariantList arg2;
|
||||||
|
// 填充列表
|
||||||
|
for (int i = 0; i < nlen; ++i) {
|
||||||
|
arg1 << (double)FGN_W[i];
|
||||||
|
arg2 << (double)NGN_W[i];
|
||||||
|
}
|
||||||
|
args.append(QVariant::fromValue(arg1)); // 直接将 innerList1 作为元素添加
|
||||||
|
args.append(QVariant::fromValue(arg2)); // 使用 << 操作符
|
||||||
|
args << (double)FGN_C << (double)NGN_C << (double)RGN_C;
|
||||||
|
PythonHandler::getInstance()->executeScript("fdsa4_test", "process_arrays", args, Att0all, nlen);
|
||||||
|
|
||||||
|
// static PyObject * pmodule = NULL;
|
||||||
|
// static PyObject * pmodule2 = NULL;
|
||||||
|
// if (!pmodule) // 防止重复加载报错cannot load module more than once per process
|
||||||
|
// {
|
||||||
|
// Py_Initialize();
|
||||||
|
// if(!Py_IsInitialized())
|
||||||
|
// {
|
||||||
|
// qDebug() << "init err";
|
||||||
|
// }
|
||||||
|
// PyRun_SimpleString("import os");
|
||||||
|
// PyRun_SimpleString("import sys");
|
||||||
|
// // PyRun_SimpleString("sys.path.append('./app/fdsa4_test')");// 设置运行路径
|
||||||
|
// PyRun_SimpleString("sys.path.append('D:/jiayl0909/logPlus/build/Bin/app/fdsa4_test')");// 设置运行路径
|
||||||
|
// PyRun_SimpleString("sys.path.append(os.path.dirname(os.path.dirname(os.getcwd())))");
|
||||||
|
// PyRun_SimpleString("print(os.getcwd())");
|
||||||
|
// PyRun_SimpleString("print(os.path.dirname(os.path.dirname(os.getcwd())))");
|
||||||
|
// PyRun_SimpleString("print(sys.path)");
|
||||||
|
|
||||||
|
// // pmodule2 = PyImport_ImportModule("math_algorithm");
|
||||||
|
// pmodule = PyImport_ImportModule("math_algorithm");
|
||||||
|
|
||||||
|
// }
|
||||||
|
// if(PyErr_Occurred()){
|
||||||
|
// PyObject*pType,*pValue,*pTraceback;
|
||||||
|
// PyErr_Fetch(&pType,&pValue,&pTraceback);PyErr_NormalizeException(&pType,&pValue,&pTraceback);
|
||||||
|
// PyObject* pstr=PyObject_Str(pValue);
|
||||||
|
// const char* pstrErrorMessage =PyUnicode_AsUTF8(pstr);
|
||||||
|
// printf("Error message:%s\n",pstrErrorMessage);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if(!pmodule)
|
||||||
|
// {
|
||||||
|
// qDebug() << "can not open the file";
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // return;
|
||||||
|
// PyObject* pFunc2 = PyObject_GetAttrString(pmodule, "process_arrays");
|
||||||
|
|
||||||
|
// // 创建两个Python列表(数组)
|
||||||
|
// PyObject* pArgs = PyTuple_New(5);//五个参数
|
||||||
|
// PyObject* pList1 = PyList_New(0);
|
||||||
|
// PyObject* pList2 = PyList_New(0);
|
||||||
|
|
||||||
|
// // 填充列表
|
||||||
|
// for (int i = 0; i < nlen; ++i) {
|
||||||
|
// PyList_Append(pList1, PyFloat_FromDouble(FGN_W[i])); // 可以调用GetINValue(AC,1,1);添加曲线数据
|
||||||
|
// PyList_Append(pList2, PyFloat_FromDouble(NGN_W[i]));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 将列表放入参数元组中
|
||||||
|
// PyTuple_SetItem(pArgs, 0, pList1);
|
||||||
|
// PyTuple_SetItem(pArgs, 1, pList2);
|
||||||
|
// PyTuple_SetItem(pArgs, 2, PyFloat_FromDouble(FGN_C));
|
||||||
|
// PyTuple_SetItem(pArgs, 3, PyFloat_FromDouble(NGN_C));
|
||||||
|
// PyTuple_SetItem(pArgs, 4, PyFloat_FromDouble(RGN_C));
|
||||||
|
|
||||||
|
// // 调用函数
|
||||||
|
// PyObject* pValue = PyObject_CallObject(pFunc2, pArgs);
|
||||||
|
// if (pValue != NULL) {
|
||||||
|
// // // 处理结果或打印结果(例如,转换为C++数据类型)
|
||||||
|
// // for (Py_ssize_t i = 0; i < PyList_Size(pValue); ++i) {
|
||||||
|
// // PyObject* item = PyList_GetItem(pValue, i);
|
||||||
|
// // printf("%ld ", PyLong_AsLong(item)); // 对于Python 3,使用 PyLong_AsLong
|
||||||
|
// // }
|
||||||
|
// // printf("\n");
|
||||||
|
// // 处理返回的元组,这里有两个数组元素
|
||||||
|
// PyObject* array1 = PyTuple_GetItem(pValue, 0);
|
||||||
|
// double dR = PyFloat_AsDouble(PyTuple_GetItem(pValue, 1)); // 获取double
|
||||||
|
|
||||||
|
// // // 将numpy数组转换为C++数组(例如使用numpy的API)
|
||||||
|
// // PyArrayObject* arr1 = (PyArrayObject*)PyArray_FromAny(array1, NULL, 0, 0, NPY_ARRAY_CARRAY, NULL);
|
||||||
|
// PyArrayObject* arr1 = (PyArrayObject*)array1;
|
||||||
|
// double* data1 = (double*)PyArray_DATA(arr1);
|
||||||
|
|
||||||
|
// int len = PyArray_DIM(arr1, 0); // 获取数组长度
|
||||||
|
// if (len>nlen)
|
||||||
|
// len = nlen;
|
||||||
|
// for (int i = 0; i < len; i++) {
|
||||||
|
// Att0all[i] = data1[i];
|
||||||
|
// }
|
||||||
|
// Py_DECREF(arr1);
|
||||||
|
// } else {
|
||||||
|
// PyErr_Print();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 清理资源
|
||||||
|
// Py_DECREF(pValue);
|
||||||
|
// Py_DECREF(pArgs);
|
||||||
|
|
||||||
|
// // while(Py_REFCNT(pmodule)>0)
|
||||||
|
// // Py_DECREF(pmodule);
|
||||||
|
// // Py_Finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
//核心处理逻辑
|
||||||
|
int Process_Struct::Process()
|
||||||
|
{
|
||||||
|
if(HD.Sdep >= HD.EndDep)
|
||||||
|
{
|
||||||
|
// AfxMessageBox("当前处理井段深度有误!\n已停止计算");
|
||||||
|
AfxMessageBox("The current depth of the processing interval is incorrect!\n Calculation has been stopped");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************写数据前的准备操作*******************************************************
|
||||||
|
******************************begin****************************/
|
||||||
|
//(1)初始化参数、输入
|
||||||
|
MemRdWt.Const();
|
||||||
|
MemRdWt.In();
|
||||||
|
|
||||||
|
//(2)波形类型的输出数据初始化检查
|
||||||
|
char outname[2][16];
|
||||||
|
int OUTindex = 0, WaveIndex = 0;
|
||||||
|
MemRdWt.GetOutCurveName(OUTindex, outname[OUTindex]);//获取输出数据名称,参数1是序列值(从0开始)(注:波形/曲线均使用GetOutCurveName函数)
|
||||||
|
|
||||||
|
int index1 = MemRdWt.OpenWave(outname[OUTindex]);//检查是否存在outname[OUTindex]波形
|
||||||
|
if(index1 < 0) //返回索引小于0说明没有该波形,需要创建
|
||||||
|
{
|
||||||
|
//创建方式:
|
||||||
|
Slf_WAVE myWave;
|
||||||
|
strcpy(myWave.Name, outname[OUTindex]);
|
||||||
|
strcpy(myWave.AliasName, outname[OUTindex]);
|
||||||
|
strcpy(myWave.DepthUnit, "m");
|
||||||
|
myWave.CodeLen = 4;
|
||||||
|
myWave.RepCode = 4;
|
||||||
|
myWave.DefVal = 0;
|
||||||
|
myWave.StartDepth = HD.Sdep;
|
||||||
|
myWave.EndDepth = HD.Edep;
|
||||||
|
myWave.DepLevel = HD.Rlev;
|
||||||
|
strcpy(myWave.DepthUnit, "m");
|
||||||
|
myWave.StartTime = 0; //起始记录时间
|
||||||
|
myWave.TimeLevel = 5; //时间采样间隔
|
||||||
|
myWave.ArrayNum = 1; //阵列数
|
||||||
|
myWave.TimeSamples = 36; //时间采样总数
|
||||||
|
strcpy(myWave.TimeUnit, "ns"); //时间单位
|
||||||
|
|
||||||
|
index1 = MemRdWt.OpenWave((Slf_WAVE *)&myWave); //创建波形(注:此时返回索引应>1,代表创建成功)
|
||||||
|
}
|
||||||
|
if(index1 < 0)
|
||||||
|
{
|
||||||
|
// AfxMessageBox("阵列数据创建失败!\n已停止计算");
|
||||||
|
AfxMessageBox("Array data creation failed!\nCalculation stopped");
|
||||||
|
return 0;
|
||||||
|
}else{
|
||||||
|
WaveIndex = index1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//(3)曲线类型的输出数据初始化检查
|
||||||
|
OUTindex = 1;//按extern "C"中定义的输出数据顺序设置
|
||||||
|
MemRdWt.GetOutCurveName(OUTindex, outname[OUTindex]);//获取输出数据名称,参数1是序列值(从0开始)
|
||||||
|
index1 = MemRdWt.OpenCurve(outname[1]);//index1 = MemRdWt.OpenCurve("EEE");//检查数据是否存在//outname[OUTindex]
|
||||||
|
if(index1 < 0) //返回索引小于0说明没有这条曲线,需要创建
|
||||||
|
{
|
||||||
|
//创建方式:
|
||||||
|
Slf_CURVE myCurve; //定义曲线对象
|
||||||
|
strcpy(myCurve.Name, outname[1]); //设置名称
|
||||||
|
strcpy(myCurve.AliasName, outname[1]); //设置别名
|
||||||
|
strcpy(myCurve.Unit, "m"); //设置数据单位
|
||||||
|
myCurve.CodeLen = 4; //设置字节长度(注:4float)
|
||||||
|
myCurve.RepCode = 4; //设置数据类型(注:4float)
|
||||||
|
myCurve.DefVal = 0; //设置默认值
|
||||||
|
myCurve.StartDepth = HD.Sdep; //设置起始深度
|
||||||
|
myCurve.EndDepth = HD.Edep; //设置结束深度
|
||||||
|
myCurve.DepLevel = HD.Rlev; //设置采样间隔
|
||||||
|
strcpy(myCurve.DepthUnit, "m"); //设置深度单位
|
||||||
|
|
||||||
|
index1 = MemRdWt.OpenCurve((Slf_CURVE *)&myCurve); //创建曲线(注:此时返回索引应>1,代表创建成功)
|
||||||
|
|
||||||
|
}
|
||||||
|
if(index1 < 0)
|
||||||
|
{
|
||||||
|
// AfxMessageBox("波形数据创建失败!\n已停止计算");
|
||||||
|
AfxMessageBox("Array data creation failed!\nCalculation stopped");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/*********************************************************end************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//(4)平台进度条设置
|
||||||
|
DepthProgress mmProgress;
|
||||||
|
mmProgress.CreatProgress(HD.Stdep, HD.EndDep, "程序处理中...");
|
||||||
|
|
||||||
|
//(5)深度循环
|
||||||
|
while(HD.Dep <= HD.EndDep)//逐深度处理
|
||||||
|
{
|
||||||
|
mmProgress.SetDepth(HD.Dep);//设置平台进度条
|
||||||
|
|
||||||
|
/********************************************************获取常量参数示例***************************************************
|
||||||
|
******************************begin****************************/
|
||||||
|
|
||||||
|
//GetPosValue函数的参数3为序列值,要和extern "C"的CONC内容对应上(从1开始)
|
||||||
|
float CTH, CT, IT, MT;
|
||||||
|
GetPosValue(CTH, CON, 1, 1);
|
||||||
|
GetPosValue(CT, CON, 2, 1);
|
||||||
|
GetPosValue(IT, CON, 3, 1);
|
||||||
|
GetPosValue(MT, CON, 4, 1);
|
||||||
|
/***************************************************************end*************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************读数据示例***************************************************************
|
||||||
|
*****************************begin****************************/
|
||||||
|
|
||||||
|
//(1)读wave数据
|
||||||
|
char inname[3][36];
|
||||||
|
int index[4] = {-1};
|
||||||
|
//获取输入数据对应的波列名称,,参数1是序列值(从0开始)
|
||||||
|
MemRdWt.GetInCurveName(0, inname[0]);
|
||||||
|
MemRdWt.GetInCurveName(1, inname[1]);
|
||||||
|
MemRdWt.GetInCurveName(2, inname[2]);
|
||||||
|
//获取波列数据对应的index,再读数据
|
||||||
|
index[0] = MemRdWt.OpenWave(inname[0]);
|
||||||
|
index[1] = MemRdWt.OpenWave(inname[1]);
|
||||||
|
index[2] = MemRdWt.OpenWave(inname[2]);
|
||||||
|
if(index[0] < 0 || index[1] < 0 || index[2] < 0){
|
||||||
|
// AfxMessageBox("波列数据获取失败\n已停止计算");
|
||||||
|
AfxMessageBox("Waveform data acquisition failed\nCalculation stopped");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
float FGN_W[60], NGN_W[60], RGN_W[60]; //必须根据wave数据的大小声明!
|
||||||
|
int a = 0;
|
||||||
|
int b = 0; int c = 0;
|
||||||
|
c = MemRdWt.ReadWaveToFloatBuf(index[2], HD.Dep, 1, RGN_W);
|
||||||
|
b = MemRdWt.ReadWaveToFloatBuf(index[1], HD.Dep, 1, NGN_W);
|
||||||
|
a = MemRdWt.ReadWaveToFloatBuf(index[0], HD.Dep, 1, FGN_W);//读取wave数据,从HD.Dep深度开始,读1个深度位置的wave数据至FGN_W中
|
||||||
|
|
||||||
|
//(2)读曲线数据
|
||||||
|
//GetINValue函数的参数2为序列值,要和extern "C"的INC内容的顺序对应上
|
||||||
|
float FGN_C, NGN_C, RGN_C;
|
||||||
|
GetINValue(FGN_C, 4, 1);
|
||||||
|
GetINValue(NGN_C, 5, 1);
|
||||||
|
GetINValue(RGN_C, 6, 1);
|
||||||
|
/********************************************************end*************************************************************/
|
||||||
|
|
||||||
|
/*******************************************处理程序示例(注:改成自己的算法)******************************************
|
||||||
|
*****************************begin****************************/
|
||||||
|
float Att0all[36];
|
||||||
|
float THCAV = 0.0;
|
||||||
|
bool bPython = true;
|
||||||
|
if (bPython)
|
||||||
|
{
|
||||||
|
callPython(FGN_C, NGN_C, RGN_C, FGN_W, NGN_W, Att0all, 36);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for(int i = 0; i < 36; i++)
|
||||||
|
Att0all[i] = FGN_W[i] + NGN_W[i];
|
||||||
|
THCAV = FGN_C + NGN_C + RGN_C;
|
||||||
|
}
|
||||||
|
/********************************************************end********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************向平台写数据示例**********************************************
|
||||||
|
*****************************begin****************************/
|
||||||
|
|
||||||
|
//(1)写wave数据
|
||||||
|
MemRdWt.WriteWave(WaveIndex, HD.Dep, 1, &Att0all);
|
||||||
|
|
||||||
|
//(2)写curve数据
|
||||||
|
int THCAV_index = MemRdWt.OpenCurve(outname[1]);//outname[1]
|
||||||
|
if(THCAV_index > 0)
|
||||||
|
MemRdWt.WriteCurve(THCAV_index, HD.Dep, 1, &THCAV);
|
||||||
|
/*******************************************************end**********************************************************/
|
||||||
|
MemRdWt.In(); //继续深度循环
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************向平台写表格示例*************************************************************
|
||||||
|
*****************************begin****************************/
|
||||||
|
|
||||||
|
//(1)固井结论表格
|
||||||
|
int itable1 = MemRdWt.OpenOG_RESULT("固井质量");//例如表格取名为“固井质量”
|
||||||
|
MemRdWt.SetTableRecordCount(itable1, 0); //清空原有表格数据
|
||||||
|
|
||||||
|
GUJING *CCNN2 = new GUJING[5];
|
||||||
|
for(int i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
CCNN2[i].GNO = i + 1;
|
||||||
|
CCNN2[i].GSDEP = 2000 + i * 10;
|
||||||
|
CCNN2[i].GEDEP = 2000 + (i + 1) * 10;
|
||||||
|
CCNN2[i].GRESULT = 1;
|
||||||
|
|
||||||
|
int temp = MemRdWt.WriteTable(itable1, i + 1, &CCNN2[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//(2)其他表格
|
||||||
|
struct Slf_RST{
|
||||||
|
int Order;
|
||||||
|
float Depth;
|
||||||
|
float CorrDepth;
|
||||||
|
};
|
||||||
|
struct Slf_RST m_Result;
|
||||||
|
itable1 = MemRdWt.OpenTable("ABCD");
|
||||||
|
if (itable1 < 0)
|
||||||
|
{
|
||||||
|
itable1 = MemRdWt.Open_Set_Table("ABCD",0,3,
|
||||||
|
"NO,DEPTH,DDEP",
|
||||||
|
"4,4,4",//字段长度
|
||||||
|
"1,4,4",//字段类型
|
||||||
|
"0,0,0");//字段备注,1-枚举
|
||||||
|
}
|
||||||
|
MemRdWt.SetTableRecordCount(itable1,3); //设置表格有3行数据
|
||||||
|
for(int j = 0; j < 3; j++)
|
||||||
|
{
|
||||||
|
memset(&m_Result, 0, sizeof(Slf_RST));
|
||||||
|
m_Result.Order = j + 1;
|
||||||
|
m_Result.Depth = 10;
|
||||||
|
m_Result.CorrDepth = 20 + j;
|
||||||
|
MemRdWt.WriteTable(itable1, j + 1, &m_Result);
|
||||||
|
|
||||||
|
}
|
||||||
|
MemRdWt.CloseTable(itable1);
|
||||||
|
/******************************************************end*************************************************************/
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
@ -19,10 +19,10 @@ INCLUDEPATH += ../../common \
|
||||||
|
|
||||||
OBJECTS_DIR = ../obj
|
OBJECTS_DIR = ../obj
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
CONFIG += qt warn_off \
|
CONFIG += qt warn_off \
|
||||||
|
|
@ -34,14 +34,10 @@ DEFINES += QT_DLL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HeadS += ../include/*.h
|
# HeadS += ../include/*.h
|
||||||
|
|
||||||
SOURCES += *.cpp
|
SOURCES += *.cpp
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
../include/BaseObject.h \
|
|
||||||
../include/ObjWelllog.h \
|
|
||||||
../include/ObjWelllogINP.h \
|
|
||||||
../include/ObjWelllogTABLE.h \
|
|
||||||
../include/appDllTest.h \
|
../include/appDllTest.h \
|
||||||
../include/appDllTestDialog.h
|
../include/appDllTestDialog.h
|
||||||
|
|
||||||
|
|
@ -49,9 +45,9 @@ HEADERS += \
|
||||||
# 目标文件夹
|
# 目标文件夹
|
||||||
#CATEGORY = OSGDataModel
|
#CATEGORY = OSGDataModel
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../../Bin -lslfiod
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../../BinR -lslfio
|
||||||
}
|
}
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
|
|
|
||||||
|
|
@ -1,217 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the QtGui module of the Qt Toolkit.
|
|
||||||
**
|
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU Lesser General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.LGPL3 included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU Lesser General Public License version 3 requirements
|
|
||||||
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 2.0 or (at your option) the GNU General
|
|
||||||
** Public license version 3 or any later version approved by the KDE Free
|
|
||||||
** Qt Foundation. The licenses are as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
|
|
||||||
** https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
** $QT_END_LICENSE$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef QOUTLINEMAPPER_P_H
|
|
||||||
#define QOUTLINEMAPPER_P_H
|
|
||||||
|
|
||||||
//
|
|
||||||
// W A R N I N G
|
|
||||||
// -------------
|
|
||||||
//
|
|
||||||
// This file is not part of the Qt API. It exists purely as an
|
|
||||||
// implementation detail. This header file may change from version to
|
|
||||||
// version without notice, or even be removed.
|
|
||||||
//
|
|
||||||
// We mean it.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <QtGui/private/qtguiglobal_p.h>
|
|
||||||
#include <QtCore/qrect.h>
|
|
||||||
|
|
||||||
#include <QtGui/qtransform.h>
|
|
||||||
#include <QtGui/qpainterpath.h>
|
|
||||||
|
|
||||||
#define QT_FT_BEGIN_HEADER
|
|
||||||
#define QT_FT_END_HEADER
|
|
||||||
|
|
||||||
#include <private/qrasterdefs_p.h>
|
|
||||||
#include <private/qdatabuffer_p.h>
|
|
||||||
#include "qpaintengineex_p.h"
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
// This limitations comes from qgrayraster.c. Any higher and
|
|
||||||
// rasterization of shapes will produce incorrect results.
|
|
||||||
//jyl
|
|
||||||
//const int QT_RASTER_COORD_LIMIT = 32767;
|
|
||||||
constexpr int QT_RASTER_COORD_LIMIT = ((1<<23) - 1);
|
|
||||||
|
|
||||||
//#define QT_DEBUG_CONVERT
|
|
||||||
|
|
||||||
Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale);
|
|
||||||
|
|
||||||
/********************************************************************************
|
|
||||||
* class QOutlineMapper
|
|
||||||
*
|
|
||||||
* Used to map between QPainterPath and the QT_FT_Outline structure used by the
|
|
||||||
* freetype scanconvertor.
|
|
||||||
*
|
|
||||||
* The outline mapper uses a path iterator to get points from the path,
|
|
||||||
* so that it is possible to transform the points as they are converted. The
|
|
||||||
* callback can be a noop, translate or full-fledged xform. (Tests indicated
|
|
||||||
* that using a C callback was low cost).
|
|
||||||
*/
|
|
||||||
class QOutlineMapper
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QOutlineMapper() :
|
|
||||||
m_element_types(0),
|
|
||||||
m_elements(0),
|
|
||||||
m_points(0),
|
|
||||||
m_tags(0),
|
|
||||||
m_contours(0),
|
|
||||||
m_in_clip_elements(false)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Sets up the matrix to be used for conversion. This also
|
|
||||||
sets up the qt_path_iterator function that is used as a callback
|
|
||||||
to get points.
|
|
||||||
*/
|
|
||||||
void setMatrix(const QTransform &m)
|
|
||||||
{
|
|
||||||
m_transform = m;
|
|
||||||
|
|
||||||
qreal scale;
|
|
||||||
qt_scaleForTransform(m, &scale);
|
|
||||||
m_curve_threshold = scale == 0 ? qreal(0.25) : (qreal(0.25) / scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
void beginOutline(Qt::FillRule fillRule)
|
|
||||||
{
|
|
||||||
#ifdef QT_DEBUG_CONVERT
|
|
||||||
printf("QOutlineMapper::beginOutline rule=%d\n", fillRule);
|
|
||||||
#endif
|
|
||||||
m_valid = true;
|
|
||||||
m_elements.reset();
|
|
||||||
m_element_types.reset();
|
|
||||||
m_points.reset();
|
|
||||||
m_tags.reset();
|
|
||||||
m_contours.reset();
|
|
||||||
m_outline.flags = fillRule == Qt::WindingFill
|
|
||||||
? QT_FT_OUTLINE_NONE
|
|
||||||
: QT_FT_OUTLINE_EVEN_ODD_FILL;
|
|
||||||
m_subpath_start = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void endOutline();
|
|
||||||
|
|
||||||
void clipElements(const QPointF *points, const QPainterPath::ElementType *types, int count);
|
|
||||||
|
|
||||||
void convertElements(const QPointF *points, const QPainterPath::ElementType *types, int count);
|
|
||||||
|
|
||||||
inline void moveTo(const QPointF &pt) {
|
|
||||||
#ifdef QT_DEBUG_CONVERT
|
|
||||||
printf("QOutlineMapper::moveTo() (%f, %f)\n", pt.x(), pt.y());
|
|
||||||
#endif
|
|
||||||
closeSubpath();
|
|
||||||
m_subpath_start = m_elements.size();
|
|
||||||
m_elements << pt;
|
|
||||||
m_element_types << QPainterPath::MoveToElement;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void lineTo(const QPointF &pt) {
|
|
||||||
#ifdef QT_DEBUG_CONVERT
|
|
||||||
printf("QOutlineMapper::lineTo() (%f, %f)\n", pt.x(), pt.y());
|
|
||||||
#endif
|
|
||||||
m_elements.add(pt);
|
|
||||||
m_element_types << QPainterPath::LineToElement;
|
|
||||||
}
|
|
||||||
|
|
||||||
void curveTo(const QPointF &cp1, const QPointF &cp2, const QPointF &ep);
|
|
||||||
|
|
||||||
inline void closeSubpath() {
|
|
||||||
int element_count = m_elements.size();
|
|
||||||
if (element_count > 0) {
|
|
||||||
if (m_elements.at(element_count-1) != m_elements.at(m_subpath_start)) {
|
|
||||||
#ifdef QT_DEBUG_CONVERT
|
|
||||||
printf(" - implicitly closing\n");
|
|
||||||
#endif
|
|
||||||
// Put the object on the stack to avoid the odd case where
|
|
||||||
// lineTo reallocs the databuffer and the QPointF & will
|
|
||||||
// be invalidated.
|
|
||||||
QPointF pt = m_elements.at(m_subpath_start);
|
|
||||||
|
|
||||||
// only do lineTo if we have element_type array...
|
|
||||||
if (m_element_types.size())
|
|
||||||
lineTo(pt);
|
|
||||||
else
|
|
||||||
m_elements << pt;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QT_FT_Outline *outline() {
|
|
||||||
if (m_valid)
|
|
||||||
return &m_outline;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QT_FT_Outline *convertPath(const QPainterPath &path);
|
|
||||||
QT_FT_Outline *convertPath(const QVectorPath &path);
|
|
||||||
|
|
||||||
inline QPainterPath::ElementType *elementTypes() const { return m_element_types.size() == 0 ? 0 : m_element_types.data(); }
|
|
||||||
|
|
||||||
public:
|
|
||||||
QDataBuffer<QPainterPath::ElementType> m_element_types;
|
|
||||||
QDataBuffer<QPointF> m_elements;
|
|
||||||
QDataBuffer<QT_FT_Vector> m_points;
|
|
||||||
QDataBuffer<char> m_tags;
|
|
||||||
QDataBuffer<int> m_contours;
|
|
||||||
|
|
||||||
QRect m_clip_rect;
|
|
||||||
QRectF controlPointRect; // only valid after endOutline()
|
|
||||||
|
|
||||||
QT_FT_Outline m_outline;
|
|
||||||
|
|
||||||
int m_subpath_start;
|
|
||||||
|
|
||||||
QTransform m_transform;
|
|
||||||
|
|
||||||
qreal m_curve_threshold;
|
|
||||||
|
|
||||||
bool m_valid;
|
|
||||||
bool m_in_clip_elements;
|
|
||||||
};
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
#endif // QOUTLINEMAPPER_P_H
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -189,67 +189,67 @@ RESOURCES += \
|
||||||
RC_FILE = $$PWD/qrc/logplus.rc
|
RC_FILE = $$PWD/qrc/logplus.rc
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDEPATH += ../../Slfio/include
|
INCLUDEPATH += $$PWD/../Slfio/include
|
||||||
INCLUDEPATH += ../../common
|
INCLUDEPATH += $$PWD/../common
|
||||||
INCLUDEPATH += ../../WellLogUI/include
|
INCLUDEPATH += $$PWD/../WellLogUI/include
|
||||||
INCLUDEPATH += ../../qtpropertybrowser
|
INCLUDEPATH += $$PWD/../qtpropertybrowser
|
||||||
INCLUDEPATH += ../../BaseFun/include
|
INCLUDEPATH += $$PWD/../BaseFun/include
|
||||||
INCLUDEPATH += ../../ConvertorManager/include
|
INCLUDEPATH += $$PWD/../ConvertorManager/include
|
||||||
INCLUDEPATH += ../../OSGDataModel/include
|
INCLUDEPATH += $$PWD/../OSGDataModel/include
|
||||||
INCLUDEPATH += ../../OSGFramework/include
|
INCLUDEPATH += $$PWD/../OSGFramework/include
|
||||||
INCLUDEPATH += ../../DataOutput/include
|
INCLUDEPATH += $$PWD/../DataOutput/include
|
||||||
INCLUDEPATH += ../../DataMgr/include
|
INCLUDEPATH += $$PWD/../DataMgr/include
|
||||||
INCLUDEPATH += ../../DrawBase/include
|
INCLUDEPATH += $$PWD/../DrawBase/include
|
||||||
INCLUDEPATH += ../../ModuleConsole/include
|
INCLUDEPATH += $$PWD/../ModuleConsole/include
|
||||||
INCLUDEPATH += ../../WellLogModule/include
|
INCLUDEPATH += $$PWD/../WellLogModule/include
|
||||||
INCLUDEPATH += ../../Workflow/include
|
INCLUDEPATH += $$PWD/../Workflow/include
|
||||||
INCLUDEPATH += ../../Workflow/WFCrystal/Crystal/include
|
INCLUDEPATH += $$PWD/../Workflow/WFCrystal/Crystal/include
|
||||||
INCLUDEPATH += ../../Workflow/WFCrystal/Plugin/include
|
INCLUDEPATH += $$PWD/../Workflow/WFCrystal/Plugin/include
|
||||||
INCLUDEPATH += ../../Workflow/WFCrystal/SysUtility/utils/include
|
INCLUDEPATH += $$PWD/../Workflow/WFCrystal/SysUtility/utils/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/IOService/include
|
INCLUDEPATH += $$PWD/../Workflow/WFEngine/IOService/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/Module/include
|
INCLUDEPATH += $$PWD/../Workflow/WFEngine/Module/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/Component/WorkflowWidget/include
|
INCLUDEPATH += $$PWD/../Workflow/WFEngine/Component/WorkflowWidget/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModel/include
|
INCLUDEPATH += $$PWD/../Workflow/WFEngine/ObjectModel/ObjectModel/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/WorkflowEngine/include
|
INCLUDEPATH += $$PWD/../Workflow/WFEngine/WorkflowEngine/include
|
||||||
INCLUDEPATH += ../../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
INCLUDEPATH += $$PWD/../Workflow/WFEngine/ObjectModel/ObjectModelBase/include
|
||||||
INCLUDEPATH += ../../Workflow/WFWidget/include
|
INCLUDEPATH += $$PWD/../Workflow/WFWidget/include
|
||||||
INCLUDEPATH += ../../EditPlotHeader/include
|
INCLUDEPATH += $$PWD/../EditPlotHeader/include
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../Bin -lBaseFund
|
LIBS += -L$$PWD/../Bin -lBaseFund
|
||||||
LIBS += -L../../Bin -lslfiod
|
LIBS += -L$$PWD/../Bin -lslfiod
|
||||||
LIBS += -L../../Bin -lWellLogUId
|
LIBS += -L$$PWD/../Bin -lWellLogUId
|
||||||
LIBS += -L../../Bin -lqtpropertybrowserd
|
LIBS += -L$$PWD/../Bin -lqtpropertybrowserd
|
||||||
LIBS += -L../../Bin -lConvertorManagerd
|
LIBS += -L$$PWD/../Bin -lConvertorManagerd
|
||||||
LIBS += -L../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../Bin -lDataOutputd
|
LIBS += -L$$PWD/../Bin -lDataOutputd
|
||||||
LIBS += -L../../Bin/ -lCallPlugind -lHPluginManaged
|
LIBS += -L$$PWD/../Bin/ -lCallPlugind -lHPluginManaged
|
||||||
LIBS += -L../../Bin/ -lDataMgrd
|
LIBS += -L$$PWD/../Bin/ -lDataMgrd
|
||||||
LIBS += -L../../Bin/ -lDrawBased
|
LIBS += -L$$PWD/../Bin/ -lDrawBased
|
||||||
LIBS += -L../../Bin/ -lLogModuleConsoled
|
LIBS += -L$$PWD/../Bin/ -lLogModuleConsoled
|
||||||
LIBS += -L../../Bin/ -lWFEngined
|
LIBS += -L$$PWD/../Bin/ -lWFEngined
|
||||||
LIBS += -L../../Bin/ -lEditPlotHeaderd
|
LIBS += -L$$PWD/../Bin/ -lEditPlotHeaderd
|
||||||
#-lCallManaged
|
#-lCallManaged
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../Bin -lBaseFun
|
LIBS += -L$$PWD/../BinR -lBaseFun
|
||||||
LIBS += -L../../Bin -lslfio
|
LIBS += -L$$PWD/../BinR -lslfio
|
||||||
LIBS += -L../../Bin -lWellLogUI
|
LIBS += -L$$PWD/../BinR -lWellLogUI
|
||||||
LIBS += -L../../Bin -lqtpropertybrowser
|
LIBS += -L$$PWD/../BinR -lqtpropertybrowser
|
||||||
LIBS += -L../../Bin -lConvertorManager
|
LIBS += -L$$PWD/../BinR -lConvertorManager
|
||||||
LIBS += -L../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../BinR -lOSGDataModel
|
||||||
LIBS += -L../../Bin -lDataOutput
|
LIBS += -L$$PWD/../BinR -lDataOutput
|
||||||
LIBS += -L../../Bin/ -lCallPlugin -lHPluginManage
|
LIBS += -L$$PWD/../BinR/ -lCallPlugin -lHPluginManage
|
||||||
LIBS += -L../../Bin/ -lDataMgr
|
LIBS += -L$$PWD/../BinR/ -lDataMgr
|
||||||
LIBS += -L../../Bin/ -lDrawBase
|
LIBS += -L$$PWD/../BinR/ -lDrawBase
|
||||||
LIBS += -L../../Bin/ -lLogModuleConsole
|
LIBS += -L$$PWD/../BinR/ -lLogModuleConsole
|
||||||
LIBS += -L../../Bin/ -lWFEngine
|
LIBS += -L$$PWD/../BinR/ -lWFEngine
|
||||||
LIBS += -L../../Bin/ -lEditPlotHeader
|
LIBS += -L$$PWD/../BinR/ -lEditPlotHeader
|
||||||
#-lCallManage
|
#-lCallManage
|
||||||
}
|
}
|
||||||
|
|
|
||||||
78
logPlusAll.pro
Normal file
78
logPlusAll.pro
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
# 主项目配置文件
|
||||||
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
|
# 定义子项目(按编译顺序排列)
|
||||||
|
SUBDIRS = \
|
||||||
|
Slfio \
|
||||||
|
BaseFun \
|
||||||
|
HPluginManage \
|
||||||
|
CallPlugin \
|
||||||
|
qtpropertybrowser \
|
||||||
|
WFCrystal \
|
||||||
|
WFEngine \
|
||||||
|
WFWidget \
|
||||||
|
OSGDataModel \
|
||||||
|
DataMgr \
|
||||||
|
OSGFramework \
|
||||||
|
WellLogModule \
|
||||||
|
WellLogUI \
|
||||||
|
ModuleConsole \
|
||||||
|
appDllTest \
|
||||||
|
ConvertorManager \
|
||||||
|
DataOutput \
|
||||||
|
SLFAscIIConvertor \
|
||||||
|
DrawBase \
|
||||||
|
EditPlotHeader \
|
||||||
|
logPlus
|
||||||
|
|
||||||
|
# 指定编译顺序依赖关系
|
||||||
|
Slfio.file = Slfio/src/Slfio.pro
|
||||||
|
BaseFun.file = BaseFun/src/BaseFun.pro
|
||||||
|
HPluginManage.file = HPluginManage/HPluginManage.pro
|
||||||
|
CallPlugin.file = CallPlugin/CallPlugin.pro
|
||||||
|
qtpropertybrowser.file = qtpropertybrowser/qtpropertybrowser.pro
|
||||||
|
WFCrystal.file = Workflow/WFCrystal/WFCrystal.pro
|
||||||
|
WFEngine.file = Workflow/WFEngine/WFEngine.pro
|
||||||
|
WFWidget.file = Workflow/WFWidget/src/WFWidget.pro
|
||||||
|
OSGDataModel.file = OSGDataModel/src/OSGDataModel.pro
|
||||||
|
DataMgr.file = DataMgr/src/DataMgr.pro
|
||||||
|
OSGFramework.file = OSGFramework/src/OSGFramework.pro
|
||||||
|
WellLogModule.file = WellLogModule/src/WellLogModule.pro
|
||||||
|
WellLogUI.file = WellLogUI/src/WellLogUI.pro
|
||||||
|
ModuleConsole.file = ModuleConsole/src/ModuleConsole.pro
|
||||||
|
appDllTest.file = appDllTest/src/appDllTest.pro
|
||||||
|
ConvertorManager.file = ConvertorManager/src/ConvertorManager.pro
|
||||||
|
DataOutput.file = DataOutput/src/DataOutput.pro
|
||||||
|
SLFAscIIConvertor.file = tran/SLFAscIIConvertor/src/SLFAsciiConvertor.pro
|
||||||
|
DrawBase.file = DrawBase/src/DrawBase.pro
|
||||||
|
EditPlotHeader.file = EditPlotHeader/src/EditPlotHeader.pro
|
||||||
|
logPlus.file = logPlus/logPlus.pro
|
||||||
|
|
||||||
|
# 设置依赖关系(确保按顺序编译)
|
||||||
|
BaseFun.depends = Slfio
|
||||||
|
CallPlugin.depends = HPluginManage
|
||||||
|
WFCrystal.depends = Slfio
|
||||||
|
WFEngine.depends = WFCrystal
|
||||||
|
WFWidget.depends = WFCrystal
|
||||||
|
OSGDataModel.depends = Slfio WFCrystal
|
||||||
|
DataMgr.depends = Slfio BaseFun
|
||||||
|
OSGFramework.depends = Slfio BaseFun OSGDataModel DataMgr
|
||||||
|
WellLogModule.depends = Slfio BaseFun OSGDataModel DataMgr WFEngine
|
||||||
|
WellLogUI.depends = Slfio BaseFun OSGDataModel DataMgr
|
||||||
|
ModuleConsole.depends = Slfio BaseFun OSGDataModel DataMgr OSGFramework WellLogUI WellLogModule WFCrystal WFEngine WFWidget
|
||||||
|
appDllTest.depends = Slfio
|
||||||
|
ConvertorManager.depends = Slfio BaseFun OSGDataModel WellLogUI
|
||||||
|
DataOutput.depends = Slfio BaseFun ConvertorManager
|
||||||
|
SLFAscIIConvertor.depends = Slfio BaseFun OSGDataModel WellLogUI ConvertorManager
|
||||||
|
DrawBase.depends = Slfio
|
||||||
|
EditPlotHeader.depends = Slfio OSGDataModel
|
||||||
|
logPlus.depends = Slfio BaseFun WellLogUI qtpropertybrowser ConvertorManager OSGDataModel DataOutput HPluginManage CallPlugin DataMgr DrawBase ModuleConsole WFEngine EditPlotHeader
|
||||||
|
|
||||||
|
# 可选:指定构建目录
|
||||||
|
# DESTDIR = $$PWD/bin
|
||||||
|
|
||||||
|
# 可选:添加编译配置
|
||||||
|
# CONFIG += ordered
|
||||||
|
|
||||||
|
# 可选:设置默认编译目标
|
||||||
|
# default.all: release
|
||||||
14
py_to_pyd/fdsa4_test.py
Normal file
14
py_to_pyd/fdsa4_test.py
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# This Python file uses the following encoding: utf-8
|
||||||
|
|
||||||
|
# if __name__ == "__main__":
|
||||||
|
# pass
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
def process_arrays(a, b, c, d, e):
|
||||||
|
result = [x + y for x, y in zip(a, b)]
|
||||||
|
return np.array(result), c+d+e
|
||||||
|
|
||||||
|
print(process_arrays([1,2],[2,3],3,4,5))
|
||||||
15
py_to_pyd/setup.py
Normal file
15
py_to_pyd/setup.py
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
from setuptools import setup
|
||||||
|
from Cython.Build import cythonize
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
setup(
|
||||||
|
ext_modules=cythonize(
|
||||||
|
"fdsa4_test.py", # 要编译的Python文件
|
||||||
|
compiler_directives={
|
||||||
|
'language_level': 3, # Python 3
|
||||||
|
'boundscheck': False, # 关闭边界检查提升性能
|
||||||
|
'wraparound': False,
|
||||||
|
}
|
||||||
|
),
|
||||||
|
include_dirs=[np.get_include()], # 包含NumPy头文件
|
||||||
|
)
|
||||||
1
py_to_pyd/命令.txt
Normal file
1
py_to_pyd/命令.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
python setup.py build_ext --inplace
|
||||||
|
|
@ -66,11 +66,11 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
!isEmpty(target.path): INSTALLS += target
|
!isEmpty(target.path): INSTALLS += target
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../Bin
|
||||||
DLLDESTDIR = ../../Bin
|
DLLDESTDIR = $$PWD/../Bin
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../Bin
|
DESTDIR = $$PWD/../BinR
|
||||||
DLLDESTDIR = ../../Bin
|
DLLDESTDIR = $$PWD/../BinR
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,7 @@ INCLUDEPATH += $(OSGHOME)/include \
|
||||||
|
|
||||||
#include(../../OSGDataModel/paiobjectmodel.libinfo)
|
#include(../../OSGDataModel/paiobjectmodel.libinfo)
|
||||||
|
|
||||||
HEADERS += ../include/*.h \
|
HEADERS += ../../../OSGDataModel/include/ObjectIDDescription.h \
|
||||||
../../../OSGDataModel/include/ObjectIDDescription.h \
|
|
||||||
../../../common/geometryutils.h
|
../../../common/geometryutils.h
|
||||||
|
|
||||||
SOURCES += *.cpp \
|
SOURCES += *.cpp \
|
||||||
|
|
@ -36,17 +35,17 @@ CONFIG += qt \
|
||||||
DEFINES += QT_DLL
|
DEFINES += QT_DLL
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
LIBS += -L../../../Bin -lOSGDataModeld
|
LIBS += -L$$PWD/../../../Bin -lOSGDataModeld
|
||||||
LIBS += -L../../../Bin -lBaseFund
|
LIBS += -L$$PWD/../../../Bin -lBaseFund
|
||||||
LIBS += -L../../../Bin -lslfiod
|
LIBS += -L$$PWD/../../../Bin -lslfiod
|
||||||
LIBS += -L../../../Bin -lWellLogUId
|
LIBS += -L$$PWD/../../../Bin -lWellLogUId
|
||||||
LIBS += -L../../../Bin -lConvertorManagerd
|
LIBS += -L$$PWD/../../../Bin -lConvertorManagerd
|
||||||
} else {
|
} else {
|
||||||
LIBS += -L../../../Bin -lOSGDataModel
|
LIBS += -L$$PWD/../../../BinR -lOSGDataModel
|
||||||
LIBS += -L../../../Bin -lBaseFun
|
LIBS += -L$$PWD/../../../BinR -lBaseFun
|
||||||
LIBS += -L../../../Bin -lslfio
|
LIBS += -L$$PWD/../../../BinR -lslfio
|
||||||
LIBS += -L../../../Bin -lWellLogUI
|
LIBS += -L$$PWD/../../../BinR -lWellLogUI
|
||||||
LIBS += -L../../../Bin -lConvertorManager
|
LIBS += -L$$PWD/../../../BinR -lConvertorManager
|
||||||
}
|
}
|
||||||
#include(../../OSGParts/src/osg.LibInfo)
|
#include(../../OSGParts/src/osg.LibInfo)
|
||||||
|
|
||||||
|
|
@ -70,10 +69,10 @@ CONFIG(debug, debug|release){
|
||||||
#QMAKE_POST_LINK = cp ../bin/*.so $(PAI_HOME)/lib/
|
#QMAKE_POST_LINK = cp ../bin/*.so $(PAI_HOME)/lib/
|
||||||
|
|
||||||
CONFIG(debug, debug|release){
|
CONFIG(debug, debug|release){
|
||||||
DESTDIR = ../../../Bin/convertor
|
DESTDIR = $$PWD/../../../Bin/convertor
|
||||||
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
|
||||||
} else {
|
} else {
|
||||||
DESTDIR = ../../../Bin/convertor
|
DESTDIR = $$PWD/../../../BinR/convertor
|
||||||
TARGET = $$join(TARGET,,,)
|
TARGET = $$join(TARGET,,,)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user