Compare commits

...

71 Commits

Author SHA1 Message Date
simonyan 3497a09f45 1、提供网格设置的弹窗; 5 hours ago
simonyan 1c71e44da7 1、实现油藏特性参数设置; 7 hours ago
simonyan 70b7bdd7c1 1、独立计算模块; 4 days ago
simonyan 5ceefee4a8 1、增加生成井信息文件的代码; 4 days ago
simonyan 1d095fd589 1、恢复到网格划分; 4 days ago
simonyan 758e1f8963 1、恢复数值试井菜单; 4 days ago
simonyan 7ea8eb6356 1、重新恢复菜单; 4 days ago
simonyan 60833cfba8 1、同时生成2D和3D网格,3D网格用于展示,2D网格用于计算; 1 week ago
simonyan 697c3823ca 1、修改数值试井菜单和界面; 1 week ago
simonyan 0783a9e272 1、完成新框架20241030版本的集成; 2 weeks ago
simonyan c155e3ea7a 1、确定合并的文件; 2 weeks ago
simonyan 8340db7bd7 1、合并确定修改的问题; 2 weeks ago
simonyan 3c05ff76c8 1、新增数智试井部分的代码; 2 weeks ago
simonyan fd01dcbfdf 1、更快框架部分最新代码; 2 weeks ago
simonyan 803e7f7cfc 1、格式化代码; 2 weeks ago
simonyan 0b0c63a3f8 1、忽略Makefile文件; 2 weeks ago
simonyan 5cc5ba5093 1、数值试井数据采用单例模式; 2 weeks ago
simonyan ad6e208835 1、修改分析基础数据获取的方式为单例; 2 weeks ago
simonyan 6c82d054b2 1、支持release生成和运行;
2、网格交互和面颜色、背景修改;
2 weeks ago
simonyan 8fdbbff6d3 1、更新geo.h文件; 2 weeks ago
simonyan 9d7a9930d1 1、设置为gmsh剖分3角形网格; 3 weeks ago
simonyan 5ed163b058 1、修复生成vtk文件失败的问题; 3 weeks ago
simonyan 5adffb3c20 1、实现选择井时,直接给出哪些井已经被选中了; 3 weeks ago
simonyan 64a9d89ce1 1、修改网格展示时的背景、面和线; 3 weeks ago
simonyan 930cc4d0ff 1、实现添加井后,双击井,弹出编辑dialog; 3 weeks ago
simonyan da4f45b2fe 1、完善选择井的dialog视图; 3 weeks ago
simonyan 6436e4a057 1、调整 储存和网格的顺序;
2、优化井的选择;
3 weeks ago
simonyan ee8fd00cc3 1、实现井的展示和多选; 3 weeks ago
simonyan fb03d39ac6 1、完成支持多选井的弹窗,下一步是将井的数据传入并传出; 3 weeks ago
simonyan dc0fc0beab 1、完成了从边界+井到几何和生成二维网格; 3 weeks ago
simonyan 4d7c0c5ab5 1、隐藏后处理视图右侧的属性栏; 3 weeks ago
simonyan 9861d9a112 1、实现在subWnd中显示后处理; 3 weeks ago
simonyan 223b37e66f 1、完成添加井、取消井、编辑井等功能; 3 weeks ago
simonyan c99a1ca616 1、完成从菜单栏进行绘制井、边界、断层、裂缝的功能; 4 weeks ago
simonyan c6a75af079 1、添加井的绘制; 4 weeks ago
simonyan e6fa52cd81 1、绘制裂缝和断层; 4 weeks ago
simonyan 5f6c7b2e03 1、完成裂缝的绘制; 4 weeks ago
simonyan 8565e75298 1、多边形边界中,删除不必要的渲染;
2、数值试井内部右侧测试的Dock视图删除;
4 weeks ago
simonyan d0c4147903 1、支持VTK模型在dialog中展示,且不会出现内存问题; 4 weeks ago
simonyan e4ac374bb9 1、弹出油藏三维地图的弹框; 1 month ago
simonyan a6fbad4e5a 1、配置打开vtk文件的类; 1 month ago
simonyan 71ae277b0d 1、集成VTK7.1.1,实现菜单网格生成时弹出三维窗口; 1 month ago
simonyan f60b21c406 1、完成从菜单点击 井和多边形边界 在画布上绘制的功能; 1 month ago
simonyan c730bb6046 1、支持边界选择一条边进行 流体类型 属性设置; 1 month ago
simonyan 9729a1cd8d 1、边界支持 流动类型属性的展示 和 修改; 1 month ago
simonyan 8ecf79a50c 1、更新多边形的tools; 1 month ago
simonyan 72bdad54ab 1、油藏边界的线段数据类; 1 month ago
simonyan a02ea2641e 1、设置数据表名; 1 month ago
simonyan cd93b785e1 1、使用最新框架代码; 1 month ago
simonyan 8190d113a1 1、增加一个数据例子的类,供参考; 1 month ago
simonyan 1cbb7a5254 1、创建 油藏地图 边界数据类; 1 month ago
simonyan d81397878a 1、完善结构树的初始化状态; 1 month ago
simonyan 8e936464e7 1、合并新的框架代码; 1 month ago
simonyan 59e57259fb 1、规范化代码; 1 month ago
simonyan aac31610e6 1、忽略dump文件; 1 month ago
simonyan 11c6db68a0 1、初始化结构树; 1 month ago
simonyan ad5aa34129 1、完成地质图导入功能; 1 month ago
simonyan baae69a94d 1、地质图导入,设置了plot背景无效; 1 month ago
simonyan 27ad591621 1、隐藏Dock;
2、支持油藏地图操作可点击;
1 month ago
simonyan d4c425c742 1、完成新建分析后,分析弹窗,点击确定后打开画布,点击取消关闭流程; 1 month ago
simonyan 32ce59eb73 1、新建分析Dialog; 1 month ago
simonyan b82e7c864d 1、合并最新框架代码; 1 month ago
zhangyin c05bd645e3 Merge branch 'feature/ribbon-menu-20240927' of http://1.92.128.200:3000/YXS/nmWATI into feature/ribbon-menu-20240927 2 months ago
simonyan a27eddc9ff 1、数值试井,打开subWnd; 2 months ago
zhangyin f98d4ca3d9 Merge branch 'feature/ribbon-menu-20240927' of http://1.92.128.200:3000/YXS/nmWATI into feature/ribbon-menu-20240927
# Conflicts:
#	.gitignore
2 months ago
simonyan a5db0af77f 1、忽略个性化配置文件; 2 months ago
simonyan e5fbae229f 1、测试日志文件;
2、更新菜单栏的ID;
2 months ago
simonyan cf339e5807 1、更新框架,数值试井(N)支持判断菜单状态; 2 months ago
simonyan 5473ad7da4 1、添加日志文件; 2 months ago
simonyan 10c67463ff 1、数值试井菜单的布局; 2 months ago
zhangyin cc9eeb6b03 1.忽略产生中间文件 2 months ago

43
.gitignore vendored

@ -1,4 +1,45 @@
Bin/Debug
Bin/Debug - backup
Bin/Release
Bin/Temp
build-*
Src4/nmWTAI.pro.user
Src4/nmWTAI.pro.user
Src4/build
Src4/nmNum/nmNum.pro.user
Src4/nmNum/nmData
!Src4/nmNum/nmData/nmData.pro
Src4/nmNum/nmPlot
!Src4/nmNum/nmPlot/nmPlot.pro
Src4/nmNum/nmSubWnd
!Src4/nmNum/nmSubWnd/nmSubWnd.pro
Src4/nmNum/nmSubWxs
!Src4/nmNum/nmSubWxs/nmSubWxs.pro
Src4/nmNum/nmXml
!Src4/nmNum/nmXml/nmXml.pro
Src4/nmWTAI.pro.user.11
Src4/nmWTAI.opensdf
Src4/nmWTAI.sdf
Src4/nmWTAI.sln
Src4/nmWTAI.suo
Src4/ipch/nmsubwnd-dda6f1b7/nmsubwnd-dfd1f3c9.ipch
Src4/nmNum/nmNum.sln
.vscode/c_cpp_properties.json
Bin/UserConfig/*.dmp
Src4/ipch/
Src/nmNum/nmSubWxs/*.orig
3rd/
Bin/Debug-opengl2
Src4/vtk - opengl2.pri
Src4/.vs/
Src4/.qmake.stash
Src4/nmWTAI.pro*
Src4/Makefile
Src4/nmNum/Makefile
Src4/nmNum/nmCalculation/Win32
Src4/nmNum/nmCalculation/debug
Src4/nmNum/nmCalculation/release
Src4/nmNum/nmCalculation/Makefile*
Src4/nmNum/nmCalculation/*.pro.user
Src4/nmNum/nmCalculation/*.vcxproj*
Src4/nmNum/nmCalculation/*.pdb
Bin-versions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
77u/PD94bWwgcup_mpadmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KPCEtLSDnvJbovpHkvbwzy/nlKggWE1MU3B5IHYyMDA2IFUgKGh0dHA6Ly93d3cuYWx0b3ZhLmNvbSkg55SxIGFueSAoYW55KSAtLT4NCjwhLS0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLS0+DQo8IS0tICAgIOacrOaWh+aho+eahOebrueahOaYr+W7uueri1dUQUnova/ku7bns7vnu59QVlTpg6jliIbnmoTnsbtUb29s6I+c5Y2V5YWz57O7KOmSiOWvuVJpYmJvbuaooeW8jykgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KPCEtLSAgICBBdXRob3Iocyk6IHdhbmd6ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4NCjwhLS0gICAgRGF0ZTogMjAyNDAxMDI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tPg0KPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotLT4NCg0KPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotLT4NCjwhLS0NCiAgICBUYWIg57qn5YirDQogICAgICAgIElEOiAgICAgICAgICDllK/kuIDmoIfor4YNCiAgICAgICAgTmFtZe+8miAgICAgICDlkI3np7DvvIzpgJrluLjoi7HmlocNCiAgICAgICAgQWxpYXPvvJogICAgICDliKvlkI3vvIzpgJrluLjkuK3mlocNCiAgICAgICAgRmlsZU1vZGU6ICAgIOaYr+WQpuaWh+S7tk1lbnXmqKHlvI/vvIwxIG9yIDANCiAgICAgICAgVmlzaWJsZe+8miAgICDmmK/lkKblj6/op4HvvIwxIG9yIDANCiAgICAgICAgVGlwc++8miAgICAgICDovoXliqnor7TmmI4NCg0KICAgICAgICBHcm91cCDnuqfliKsNCiAgICAgICAgICAgIE5hbWXvvJogICAgICAg5ZCN56ew77yM6YCa5bi46Iux5paHDQogICAgICAgICAgICBBbGlhc++8miAgICAgIOWIq+WQje+8jOmAmuW4uOS4reaWhw0KDQogICAgICAgICAgICBDbWQg57qn5YirDQogICAgICAgICAgICAgICAgSUQ6ICAgICAgICAgIOWUr+S4gOagh+ivhg0KICAgICAgICAgICAgICAgIFR5cGU6ICAgICAgICDlr7nlupTmjqfku7bnsbvlnos6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDDigJTigJTpu5jorqRCdXR0b24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMeKAlOKAlOW4puS4i+aLieiPnOWNlUJ1dHRvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy4oCU4oCUQ29tYm9Cb3gNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgM+KAlOKAlENoZWNrQm94DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDTigJTigJRSYWRpb0J1dHRvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA14oCU4oCUVGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA24oCU4oCUTGFiZWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgN+KAlOKAlExpc3RXaWRnZXQNCiAgICAgICAgICAgICAgICBOYW1l77yaICAgICAgIOWQjeensO+8jOmAmuW4uOiLseaWhw0KICAgICAgICAgICAgICAgIEFsaWFz77yaICAgICAg5Yir5ZCN77yM6YCa5bi45Lit5paHDQogICAgICAgICAgICAgICAgSWNvbu+8miAgICAgICDlm77moIcNCiAgICAgICAgICAgICAgICBTaG9ydEtlee+8miAgIOW/q+aNt+mUrg0KICAgICAgICAgICAgICAgIEJvdW5kczogICAgICDkvY3nva7kv6Hmga/vvIzlhajmmK/mlbTmlbDvvIzlnKhHcmlkTGF5b3V05LitDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLDAsMSwyKSAoMCwwKSDliIbliKvkuLp4eXdoDQogICAgICAgICAgICAgICAgRXh0SW5mbzogICAgIOaJqeWxleS/oeaBr++8jOWmguaTjeS9nOWvueixoeeahOihqOWQjSzkuIvmi4npgInpobnnrYkNCiAgICAgICAgICAgICAgICBFeHROYW1lczogICAg5omp5bGV5L+h5oGv5a+55bqU55qETmFtZe+8jOWmguS4i+aLiWJ1dHRvbuWvueW6lOeahE5hbWUNCiAgICAgICAgICAgICAgICBUaXBz77yaICAgICAgIOi+heWKqeivtOaYjg0KLS0+DQo8IS0tKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi0tPg0KDQo8UmliYm9uPg0KDQogICAgPFRhYiBJRD0iMCIgTmFtZT0iUFZUIiBBbGlhcz0iUFZUIiA+DQoNCiAgICAgICAgPEdyb3VwIE5hbWU9IkJhc2ljIiBBbGlhcz0i5Z+656GAIj4NCiAgICAgICAgICAgIDxDbWQgSUQ9IjgwMCIgQm91bmRzPSIwLDAsMiwxIiBOYW1lPSJCYXNpY09wdGlvbiIgQWxpYXM9IuWfuuehgOmAiemhuSIgSWNvbj0iUHZ0QmFzaWNPcHRpb24iIC8+DQogICAgICAgIDwvR3JvdXA+DQoNCiAgICAgICAgPEdyb3VwIE5hbWU9IlBoYXNlIiBBbGlhcz0iUFZU5Y+C5pWw6K6h566XIj4NCiAgICAgICAgICAgIDxDbWQgSUQ9IjgwMSIgQm91bmRzPSIwLDAsMiwxIiBOYW1lPSJQaGFzZU9pbCIgQWxpYXM9IuayueebuOWPguaVsCIgSWNvbj0iUGhhc2VPaWwiIC8+DQogICAgICAgICAgICA8Q21kIElEPSI4MDIiIEJvdW5kcz0iMCwxLDIsMSIgTmFtZT0iUGhhc2VHYXMiIEFsaWFzPSLmsJTnm7jlj4LmlbAiIEljb249IlBoYXNlR2FzIiAvPg0KICAgICAgICAgICAgPENtZCBJRD0iODAzIiBCb3VuZHM9IjAsMiwyLDEiIE5hbWU9IlBoYXNlV2F0ZXIiIEFsaWFzPSLmsLTnm7jlj4LmlbAiIEljb249IlBoYXNlV2F0ZXIiIC8+DQogICAgICAgPC9Hcm91cD4NCg0KICAgICAgICA8R3JvdXAgTmFtZT0iUHNldSIgQWxpYXM9Iuiuoeeul+aLn+WOi+WKmyI+DQogICAgICAgICAgICA8Q21kIElEPSI4MDYiIEJvdW5kcz0iMCwwLDIsMSIgTmFtZT0iUHNldVByZXNzdXJlIiBBbGlhcz0i6YCa55So5pa55byPIiBUaXBzPSLln7rmnKzmlrnms5XorqHnrpfmi5/ljovlipsiICBJY29uPSJQc2Vkb1AiIC8+DQogICAgICAgICAgICA8Q21kIElEPSI4MDciIEJvdW5kcz0iMCwxLDIsMSIgTmFtZT0iUHNldVByZXNzdXJlMyIgQWxpYXM9IuS4ieWMuuaWueW8jyIgVGlwcz0i5LiJ5Yy65ouf5ZCI6K6h566X5ouf5Y6L5YqbIiBJY29uPSJQc2Vkb1AzIiAvPg0KICAgICAgICAgICAgPENtZCBJRD0iODA4IiBCb3VuZHM9IjAsMiwyLDEiIE5hbWU9IlBzZXVQcmVzc3VyZUMiIEFsaWFzPSLnu4TliIblkKvph4/mlrnlvI8iIFRpcHM9Iue7hOWIhuWQq+mHj+iuoeeul+aLn+WOi+WKmyIgSWNvbj0iUHNlZG9QQyIgLz4NCg0KICAgICAgIDwvR3JvdXA+DQoNCiAgICAgICAgPEdyb3VwIE5hbWU9IlJlc3VsdCIgQWxpYXM9IuaIkOaenCI+DQogICAgICAgICAgICA8Q21kIElEPSI4MDQiIEJvdW5kcz0iMCwwIiBOYW1lPSJTYXZlUHZ0IiBBbGlhcz0i5L+d5a2YUHZ0IiBJY29uPSJTYXZlUHZ0IiAvPg0KICAgICAgICAgICAgPENtZCBJRD0iODA1IiBCb3VuZHM9IjEsMCIgTmFtZT0iTG9hZFB2dCIgQWxpYXM9IuWKoOi9vVB2dCIgSWNvbj0iTG9hZFB2dCIgLz4NCiAgICAgICAgPC9Hcm91cD4NCg0KICAgICAgICA8R3JvdXAgTmFtZT0iSGVscCIgQWxpYXM9IuW4ruWKqSI+ICAgICAgICANCiAgICAgICAgICAgIDxDbWQgSUQ9IjEwMDAyIiBCb3VuZHM9IjAsMCwyLDEiIE5hbWU9IkhlbHAiIEFsaWFzPSLluK7liqkoSCkiIEljb249IkhlbHAiIC8+DQogICAgICAgIDwvR3JvdXA+DQoNCiAgICA8L1RhYj4NCg0KPC9SaWJib24+DQo=

@ -1 +1 @@
77u/PD94bWwgcup_mpadmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxSb290Pg0KCTxQYXJhR3wzyJvdXAgTmFtZT0iIiBBbGlhcz0i5LqV5Y+j5Y6L5Yqb5oqY566X5LqV5bqV5Y6L5YqbIj4NCgkJPFBhcmFJdGVtIERlc2M9ImNvbHVtbiBsZW5ndGgiIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMjAwMCIgRGlnaXQ9IjIiIE5hbWU9ImNsIiBBbGlhcz0i566h5p+x5oC76ZW/5bqmIiBNaW49IjEiIE1heD0iMTAwMDAiLz4NCgkJPFBhcmFJdGVtIERlc2M9IndlbGxoZWFkIEkuRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wNzYwMCIgRGlnaXQ9IjUiIE5hbWU9IndoRCIgQWxpYXM9IuS6leWPo+WGheW+hCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJ3ZWxsYm90dG9tIEkuRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wNjIwMCIgRGlnaXQ9IjUiIE5hbWU9IndiRCIgQWxpYXM9IuS6leW6leWGheW+hCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJ3ZWxsaGVhZCBvaWxwaXBlIE8uRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wODg5MCIgRGlnaXQ9IjUiIE5hbWU9IndoT0QiIEFsaWFzPSLkupXlj6PmsrnnrqHlpJblvoQiIE1pbj0iMWUtMDUiIE1heD0iMTAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0id2VsbGhlYWQgY2FzaW5nIEkuRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4xMjQzMCIgRGlnaXQ9IjUiIE5hbWU9IndoSUQiIEFsaWFzPSLkupXlj6PlpZfnrqHlhoXlvoQiIE1pbj0iMWUtMDUiIE1heD0iMTAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0id2VsbGJvdHRvbSBvaWxwaXBlIE8uRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wNzMwMiIgRGlnaXQ9IjUiIE5hbWU9IndiT0QiIEFsaWFzPSLkupXlupXmsrnnrqHlpJblvoQiIE1pbj0iMWUtMDUiIE1heD0iMTAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0id2VsbGJvdHRvbSBjYXNpbmcgSS5ELiIgVW5pdD0ibSIgVGlwcz0iIiBEZWZhdWx0PSIwLjEyMTQwIiBEaWdpdD0iNSIgTmFtZT0id2JJRCIgQWxpYXM9IuS6leW6leWll+euoeWGheW+hCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJmbHVpZCBkZW5zaXR5IiBVbml0PSJrZy9tXjMiIFRpcHM9IiIgRGVmYXVsdD0iMTAwMCIgRGlnaXQ9IjIiIE5hbWU9InBmIiBBbGlhcz0i5rWB5L2T5a+G5bqmIiBNaW49IjFlLTA1IiBNYXg9IjEwMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJjb25zaXN0ZW5jeSBjb2VmZmljaWVudCIgVW5pdD0ibVBhwrdzXm4iIFRpcHM9IiIgRGVmYXVsdD0iNDAiIERpZ2l0PSIyIiBOYW1lPSJjYyIgQWxpYXM9IueooOW6puezu+aVsCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0iZmxvdyBiZWhhdmlvciBpbmRleCIgVW5pdD0iZnJhY3Rpb24iIFRpcHM9IiIgRGVmYXVsdD0iMC42MCIgRGlnaXQ9IjIiIE5hbWU9ImZiaSIgQWxpYXM9Iua1geWPmOaMh+aVsCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwMCIvPg0KCTwvUGFyYUdyb3VwPg0KPC9Sb290Pg0K
77u/PD94bWwgcup_mpadmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxSb290Pg0KCTxQYXJhR3wzyJvdXAgTmFtZT0iIiBBbGlhcz0i5LqV5Y+j5Y6L5Yqb5oqY566X5LqV5bqV5Y6L5YqbIj4NCgkJPFBhcmFJdGVtIERlc2M9ImNvbHVtbiBsZW5ndGgiIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMjAwMCIgRGlnaXQ9IjIiIE5hbWU9ImNsIiBBbGlhcz0i566h5p+x5oC76ZW/5bqmIiBNaW49IjEiIE1heD0iMTAwMDAiLz4NCgkJPFBhcmFJdGVtIERlc2M9IndlbGxoZWFkIEkuRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wNzYwMCIgRGlnaXQ9IjUiIE5hbWU9IndoRCIgQWxpYXM9IuS6leWPo+WGheW+hCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJ3ZWxsYm90dG9tIEkuRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wNjIwMCIgRGlnaXQ9IjUiIE5hbWU9IndiRCIgQWxpYXM9IuS6leW6leWGheW+hCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJ3ZWxsaGVhZCBvaWxwaXBlIE8uRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wODg5MCIgRGlnaXQ9IjUiIE5hbWU9IndoT0QiIEFsaWFzPSLkupXlj6PmsrnnrqHlpJblvoQiIE1pbj0iMWUtMDUiIE1heD0iMTAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0id2VsbGhlYWQgY2FzaW5nIEkuRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4xMjQzMCIgRGlnaXQ9IjUiIE5hbWU9IndoSUQiIEFsaWFzPSLkupXlj6PlpZfnrqHlhoXlvoQiIE1pbj0iMWUtMDUiIE1heD0iMTAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0id2VsbGJvdHRvbSBvaWxwaXBlIE8uRC4iIFVuaXQ9Im0iIFRpcHM9IiIgRGVmYXVsdD0iMC4wNzMwMiIgRGlnaXQ9IjUiIE5hbWU9IndiT0QiIEFsaWFzPSLkupXlupXmsrnnrqHlpJblvoQiIE1pbj0iMWUtMDUiIE1heD0iMTAwMCIvPg0KCQk8UGFyYUl0ZW0gRGVzYz0id2VsbGJvdHRvbSBjYXNpbmcgSS5ELiIgVW5pdD0ibSIgVGlwcz0iIiBEZWZhdWx0PSIwLjEyMTQwIiBEaWdpdD0iNSIgTmFtZT0id2JJRCIgQWxpYXM9IuS6leW6leWll+euoeWGheW+hCIgTWluPSIxZS0wNSIgTWF4PSIxMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJmbHVpZCBkZW5zaXR5IiBVbml0PSJrZy9tXjMiIFRpcHM9IiIgRGVmYXVsdD0iMTAwMCIgRGlnaXQ9IjIiIE5hbWU9InBmIiBBbGlhcz0i5rWB5L2T5a+G5bqmIiBNaW49IjFlLTA1IiBNYXg9IjEwMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJjb25zaXN0ZW5jeSBjb2VmZmljaWVudCIgVW5pdD0ibVBhLnNebiIgVGlwcz0iIiBEZWZhdWx0PSI0MCIgRGlnaXQ9IjIiIE5hbWU9ImNjIiBBbGlhcz0i56ig5bqm57O75pWwIiBNaW49IjFlLTA1IiBNYXg9IjEwMDAwIi8+DQoJCTxQYXJhSXRlbSBEZXNjPSJmbG93IGJlaGF2aW9yIGluZGV4IiBVbml0PSJmcmFjdGlvbiIgVGlwcz0iIiBEZWZhdWx0PSIwLjYwIiBEaWdpdD0iMiIgTmFtZT0iZmJpIiBBbGlhcz0i5rWB5Y+Y5oyH5pWwIiBNaW49IjFlLTA1IiBNYXg9IjEwMDAwIi8+DQoJPC9QYXJhR3JvdXA+DQo8L1Jvb3Q+DQo=

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -6,7 +6,7 @@
*/
/*窗体背景*/
iDlgBase{
iDlgBase,iSubWndData{
background-color: #ffffff;
}
iPlotCurveWxT,iGuiPlot {
@ -282,7 +282,6 @@ QTableView{
background-color:transparent;
alternate-background-color:rgb(232, 232, 232);
border: 1px solid gray;
/*border-style : ridge;*/
selection-background-color: rgb(51, 153, 255)/*lightblue*/;
selection-color: white;
@ -298,19 +297,41 @@ QTableView::grid
{ border: 1px solid gray;
}*/
QTableView QHeaderView::section {
border: 1px solid lightgray;
QTableView QHeaderView {
/* background: transparent;*/
/* border: 1px solid lightgray;*/
}
/*QTableView上侧*/
QTableView QHeaderView::section:horizontal {
background: transparent;
margin-left:-10px;
border: none; /*想单独设置必须先指定none*/
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}
QTableView QHeaderView {
/*QTableView左侧*/
QTableView QHeaderView::section:vertical {
background: transparent;
border: 1px solid lightgray;
border: none; /*想单独设置必须先指定none*/
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
/*min-width:30px;/*避免左侧序号列太窄*/
}
/*QTableView左上角侧*/
QTableView QTableCornerButton::section {
border: 0px solid lightgray;
background: transparent;
border: none;
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}
QTableView QScrollBar {
background:transparent;
}
@ -460,7 +481,7 @@ QMdiSubWindow {
QMdiSubWindow::systemButton {
background-color: #ffffff; /* 按钮背景色 */
border: 1px solid #000000; /* 按钮边框 */
border-radius: 4px; /* 按钮边框圆角 */
border-radius: 2px; /* 按钮边框圆角 */
}
QMdiSubWindow::systemButton:hover {
background-color: #eeeeee; /* 鼠标悬停时的背景色 */
@ -656,7 +677,7 @@ background:none;
QScrollBar:vertical{
background:#transparent;
padding:0px;
border-radius:5px;
border-radius:2px;
/*max-width:10px;*/
width:10px;
}
@ -664,7 +685,7 @@ width:10px;
QScrollBar::handle:vertical{
background:rgb(220,220,220);
min-height:50px;
border-radius:5px;
border-radius:2px;
}
QScrollBar::handle:vertical:hover{

@ -33,12 +33,12 @@ QPushButton,QToolButton {
}
QPushButton:hover:pressed,QPushButton:checked,QToolButton:hover:pressed,QToolButton:checked {
background-color: rgb(157, 195, 230);
border-radius: 10px;
border-radius: 6px;
box-sizing: border-box;
}
QPushButton:hover:!pressed,QToolButton:hover:!pressed {
background-color: rgb(198, 221, 241);
border-radius: 10px;
border-radius: 6px;
box-sizing: border-box;
}
QPushButton::menu-indicator {
@ -150,7 +150,7 @@ QRadioButton::indicator::unchecked {
/* QComboBox*/
QComboBox {
border: 1px solid gray;
border-radius: 6px;
border-radius: 5px;
padding: 2px 4px 2px 4px;
min-width: 3em;
}
@ -206,7 +206,7 @@ QSplitter::handle {
/*QProgressBar*/
QProgressBar{
border: 2px solid gray;
border-radius: 10px;
border-radius: 6px;
text-align: center;
}
@ -282,7 +282,7 @@ QTableView{
background-color:transparent;
alternate-background-color:rgb(232, 232, 232);
border: 2px solid gray;
/*border-style : ridge;*/
selection-background-color: rgb(51, 153, 255)/*lightblue*/;
selection-color: white;
@ -298,18 +298,41 @@ QTableView::grid
{ border: 1px solid gray;
}*/
QTableView QHeaderView::section {
border: 1px solid lightgray;
QTableView QHeaderView {
/* background: transparent;*/
/* border: 1px solid lightgray;*/
}
/*QTableView上侧*/
QTableView QHeaderView::section:horizontal {
background: transparent;
border: none; /*想单独设置必须先指定none*/
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}
QTableView QHeaderView {
/*QTableView左侧*/
QTableView QHeaderView::section:vertical {
background: transparent;
border: 1px solid lightgray;
border: none; /*想单独设置必须先指定none*/
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
min-width:45px;/*避免左侧序号列太窄*/
}
/*QTableView左上角侧*/
QTableView QTableCornerButton::section {
border: 1px solid lightgray;
background: transparent;
border: none;
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}
QTableView QScrollBar {
background:transparent;
}
@ -459,7 +482,7 @@ QMdiSubWindow {
QMdiSubWindow::systemButton {
background-color: #ffffff; /* 按钮背景色 */
border: 8px solid #000000; /* 按钮边框 */
border-radius: 4px; /* 按钮边框圆角 */
border-radius: 3px; /* 按钮边框圆角 */
}
QMdiSubWindow::systemButton:hover {
background-color: #eeeeee; /* 鼠标悬停时的背景色 */
@ -612,7 +635,7 @@ QWebView {
QScrollBar:horizontal{
background:#transparent;
padding:0px;
border-radius:10px;
border-radius:6px;
/*max-height:12px;*/
height:24px;
}
@ -620,7 +643,7 @@ height:24px;
QScrollBar::handle:horizontal{
background:rgb(220,220,220);
min-width:80px;
border-radius:10px;
border-radius:6px;
/*min-width: 20px;
margin-bottom: 4px;
@ -654,7 +677,7 @@ background:none;
QScrollBar:vertical{
background:#transparent;
padding:0px;
border-radius:5px;
border-radius:4px;
/*max-width:10px;*/
width:18px;
}
@ -662,7 +685,7 @@ width:18px;
QScrollBar::handle:vertical{
background:rgb(220,220,220);
min-height:100px;
border-radius:10px;
border-radius:6px;
}
QScrollBar::handle:vertical:hover{

@ -0,0 +1,715 @@
/*
* WTAI's css setting for 4k-about monitor
* By WANG, Zhan-guo
* Created On: 2023-12-05
* Modified On: 2024-09-13
*/
/*窗体背景*/
iDlgBase{
background-color: #ffffff;
}
iPlotCurveWxT,iGuiPlot {
border : none;
}
/*QWidget {
font: 9pt;
}*/
/*参数及绘图属性窗体*/
iGridRowUtils{
background-color: #ffffff;
border : none;
}
ZxPtyPano{
background-color: #ffffff;
/* border : none;*/
}
/* 两种ButtonQPushButton&QToolButton */
QPushButton,QToolButton {
background-color: transparent;
color: black;
}
QPushButton:hover:pressed,QPushButton:checked,QToolButton:hover:pressed,QToolButton:checked {
background-color: rgb(157, 195, 230);
border-radius: 10px;
box-sizing: border-box;
}
QPushButton:hover:!pressed,QToolButton:hover:!pressed {
background-color: rgb(198, 221, 241);
border-radius: 10px;
box-sizing: border-box;
}
QPushButton::menu-indicator {
subcontrol-position: right bottom;
subcontrol-origin: padding;
left: -4px;
}
/* only for MenuButtonPopup */
QToolButton[popupMode="1"] {
padding-right: 40px;
}
/*QToolButton::menu-button {
background: transparent;
width: 16px;
}*/
/* QToolBar */
QToolBar {
background-color: transparent;
border-style : dotted;
}
QToolBar:handle {
}
QToolBar::separator {
}
/*日历组件*/
#qt_calendar_calendarview {
background: white;
}
QDateTimeEdit {
background: transparent;
}
QCalendarView QHeaderView::section {
border: 2px solid lightgray;
height: 2px
}
QCalendarView QHeaderView {
border: 2px solid lightgray;
height: 2px
}
QCalendarView QTableCornerButton::section {
border: 2px solid lightgray;
height: 2px
}
/*一些设置为透明背景的基础控件*/
QToolTip{
background-color: transparent;
}
/* QTextEdit */
QTextEdit {
}
/* QLineEdit */
QLineEdit {
}
QLineEdit[readOnly="true"]{
color: gray;
}
/* === QToolTip === */
QToolTip {
background-color: light gray;
color: black;
}
/*QSlider*/
QSlider::groove:horizontal {
position: absolute;
top: 2px; height: 2px;
background: #B1B1B1;
}
QSlider::handle:horizontal {
border-image:url($/Res/Icon/slider-handle_4k.png);
border: 2px solid #000000;
width: 16px;
margin: -10px 0;
}
/* QCheckBox */
QCheckBox {
background-color: transparent;
background-size: 40px 40px;
}
QCheckBox::indicator::checked {
image: url($/Res/Icon/checkBox_checked_4k.png);
}
QCheckBox::indicator::unchecked {
image: url($/Res/Icon/checkBox_unchecked_4k.png);
}
/* QRadioButton */
QRadioButton {
background-color: transparent;
background-size: 40px 40px;
}
QRadioButton::indicator::checked {
image: url($/Res/Icon/radio_checked_4k.png);
}
QRadioButton::indicator::unchecked {
image: url($/Res/Icon/radio_unchecked_4k.png);
}
/* QComboBox*/
QComboBox {
border: 1px solid gray;
border-radius: 6px;
padding: 2px 4px 2px 4px;
min-width: 3em;
}
ZxHeaderComboBoxEx{
background-color: light gray;
min-width: 1em;
}
QComboBox::drop-down {
subcontrol-origin: padding;
subcontrol-position: top right;
width: 40px;
border-left-width: 2px;
border-left-color: darkgray;
border-left-style: solid;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
QComboBox::down-arrow {
image: url($/Res/Icon/CbxBtn_4k.png);
}
QDoubleSpinBox,QSpinBox {
background-color: transparent;
}
/* QGroupBox */
QGroupBox {
background-color: transparent;
}
QGroupBox::title {
color: rgb(47, 85, 151);
subcontrol-origin: margin;
subcontrol-position: top left;
margin-left: 10px;
}
/* QSplitter */
QSplitter {
/* background-color: transparent;*/
}
QSplitter::handle {
background-color:light blue;
border-width:0px;
border-style:dotted;
height:2px;
}
/*QProgressBar*/
QProgressBar{
border: 2px solid gray;
border-radius: 10px;
text-align: center;
}
/* QListWidget */
QListWidget {
background-color: #ffffff;
border: 2px solid gray;
}
QListWidget::item:selected{
background:lightblue;
color:blue;
}
/* QTreeWidget */
QTreeWidget{
background-color: #ffffff;
border-color:light gray;
}
QTreeWidget QHeaderView::section {
border: 2px solid lightgray;
background: transparent;
}
QTreeWidget QHeaderView {
background: transparent;
}
/*QTreeView*/
QTreeView{
background-color: #ffffff;
alternate-background-color:rgb(0, 192, 0);
border-color:light gray;
}
QTreeView QHeaderView::section {
border: 2px solid lightgray;
background: transparent;
}
QTreeView QHeaderView {
background: transparent;
}
/*QTreeView::item:selected{
background:lightblue;
color:blue;
}*/
/* QTableWidget */
QTableWidget{
background-color:transparent;
alternate-background-color:rgb(0, 192, 0);
border: none;
}
QTableWidget QHeaderView::section {
border: 2px solid lightgray;
background: transparent;
}
QTableWidget QHeaderView {
background: transparent;
}
QTableWidget QTableCornerButton::section {
border: 2px solid lightgray;
background: transparent;
}
QTableWidget QScrollBar {
background:transparent;
}
/* QTableView */
QTableView{
background-color:transparent;
alternate-background-color:rgb(232, 232, 232);
border: 2px solid gray;
selection-background-color: rgb(51, 153, 255)/*lightblue*/;
selection-color: white;
gridline-color: lightgray;
}
/*QTableView::grid
{ border: 1px solid red;
color: rgb(255, 0, 0);
gridline-color: rgb(255, 0, 0);
}
QTableView::grid
{ border: 1px solid gray;
}*/
QTableView QHeaderView {
/* background: transparent;*/
/* border: 1px solid lightgray;*/
}
/*QTableView上侧*/
QTableView QHeaderView::section:horizontal {
background: transparent;
border: none; /*想单独设置必须先指定none*/
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}
/*QTableView左侧*/
QTableView QHeaderView::section:vertical {
background: transparent;
border: none; /*想单独设置必须先指定none*/
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
min-width:30px;/*避免左侧序号列太窄*/
}
/*QTableView左上角侧*/
QTableView QTableCornerButton::section {
background: transparent;
border: none;
border-right: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}
QTableView QScrollBar {
background:transparent;
}
/*QTableView::item::selected
{
background-color:lightblue;
color: white;
}*/
/* QTabWidget */
QTabWidget::pane{
border-width:1px;
border-style:dotted;
}
QTabWidget::tab-bar{
border-width:0px;
}
QTabBar::tab:first:selected,
QTabBar::tab:middle:selected,
QTabBar::tab:last:selected,
QTabBar::tab:only-one{
/* background-color: white;*/
/* color: blue;*/
/* border-width:10px;
border-color:rgb(48, 104, 151);
border-style: outset;*/
}
QTabBar::tab:first:!selected,
QTabBar::tab:middle:!selected,
QTabBar::tab:last:!selected {
/* background-color: transparent;*/
/* color: rgb(128, 128, 128);*/
/* border:1px solid rgba(0,0,0,50);*/
/* border-width:10px;
border-color:rgb(48, 104, 151);
border-style: ridge;*/
}
QTabBar::tab:top, QTabBar::tab:bottom {
/* min-width:60px;*/
}
QTabBar::tab:left, QTabBar::tab:right {
/* min-height:50px;*/
}
/* === QMenu === */
QMenu {
background-color: rgb(138, 209, 251);
}
/* === QMenuBar === */
QMenuBar {
background-color: transparent;
}
QMainWindow::separator {
background-color: transparent;
border: 2px solid transparent;
}
QMainWindow::separator:horizontal {
border-top: 2px solid #a6a5a5;
}
QMainWindow::separator:vertical {
border-right: 2px solid #a6a5a5;
}
/*QDockWidget*/
QDockWidget{
/* image: url($/Res/Image/WTAI_Main.png);*/
/* border:1px ridge lightgray;
border:3px ridge red;*/
/*titlebar-close-icon: url($/Res/Icon/close.png);*/
/* titlebar-normal-icon: url($/Res/Icon/ExcludeRect.png);*/
background-color: rgb(218,227,243);
/* background: #dfdfdf;
border: 1px solid #C8C8C8;
border-right: 3px solid qlineargradient(x1: 1, y1: 0, x2: 0, y2: 0,
stop: 0 #999999, stop: 0.33 #999999, stop: 0.34 transparent, stop: 1 transparent);
border-left: 3px solid qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
stop: 0 #999999, stop: 0.33 #999999, stop: 0.34 transparent, stop: 1 transparent);
border-top: 3px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #999999, stop: 0.33 #999999, stop: 0.34 transparent, stop: 1 transparent);
border-bottom: 3px solid qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,
stop: 0 #999999, stop: 0.33 #999999, stop: 0.34 transparent, stop: 1 transparent);
margin: 0px;*/
}
QDockWidget::title {
text-align: left;
/* background: transparent;
background-color: qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6);*/
background-color: #dfdfdf;
padding-left:0px;
height:48px;
}
QDockWidget::close-button,QDockWidget::float-button {
/* border:1px solid darkgray;*/
/* background: darkgray;*/
/* padding:0px;*/
}
QDockWidget::close-button:hover,QDockWidget::float-button:hover {
/* titlebar-normal-icon: url($/Res/Icon/ExcludeRect.png);*/
background: gray;
}
QDockWidget::close-button:pressed,QDockWidget::float-button:pressed {
/* titlebar-normal-icon: url($/Res/Icon/ExcludeRect.png);*/
/* padding:1px-1px-1px-1px;*/
}
/*QDockWidget::close-button {
subcontrol-position: top left;
subcontrol-origin: margin;
position: absolute;
top:0px; left:0px; bottom:0px;
width:14px;
}
QDockWidget::float-button {
subcontrol-position: top left;
subcontrol-origin: margin;
position: absolute;
top:0px; left:16px; bottom:0px;
width:14px;
}*/
QTreeView, QListView, QTabWidget::pane{
border:1px solid #C0DCF2;
selection-background-color:#F2F9FF;
selection-color:#386487;
alternate-background-color:#DAEFFF;
gridline-color:#C0DCF2;
}
/*QMdiArea*/
QMdiArea {
border:1px ridge gray;
}
/*QMdiSubWindow*/
QMdiSubWindow {
background-color: #f0f0f0;
}
QMdiSubWindow::systemButton {
background-color: #ffffff; /* 按钮背景色 */
border: 8px solid #000000; /* 按钮边框 */
border-radius: 4px; /* 按钮边框圆角 */
}
QMdiSubWindow::systemButton:hover {
background-color: #eeeeee; /* 鼠标悬停时的背景色 */
}
QMdiSubWindow::titleBar {
background-color: #cccccc; /* 标题栏背景色 */
font: bold 15px; /* 加粗12px 字体 */
color: #000000; /* 标题栏文字颜色 */
}
ZxMdiSubWindow::title {
height:64px;
}
ZxMdiSubWindow QWidget {
icon-size: 32px;
}
ZxMdiSubWindowChild::title {
height:48px;
}
/*Ribbon*/
QMenu {
background-color: #FCFCFC;
border: 1px solid #8492A6;
}
QMenu::item {
background-color: transparent;
}
iWxMenuItem::hover{
border: 1px solid #FFB700;
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1,stop:0 #FEF9F4, stop:0.38 #FDE0BD,stop:0.39 #FFCE69, stop:1 #FFFFE7);
}
QMenu::item:selected {
background-color: #654321;
}
#btnRibbonFile::menu-indicator{
image:None;
}
#btnRibbonFile{
min-width:100px;
max-width:100px;
height:42px;
border: 2px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border: solid #416ABD;
color:white;
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1,
stop:0 #467FBD, stop:0.5 #2A5FAC,stop:0.51 #1A4088, stop:1 #419ACF);
}
#btnRibbonFile::hover{
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1,
stop:0 #7BB2EB, stop:0.5 #477ECD,stop:0.51 #114ECF, stop:1 #80E1FF);
}
#btnRibbonFile::pressed{
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1,
stop:0 #467BBB, stop:0.5 #2F63AE,stop:0.51 #1C438A, stop:1 #358BC9);
}
#tabWxMain::tab-bar {
left: 130px;
}
#tabWxMain QTabBar::tab{
height:48px;
}
#tabWxMain QTabBar::tab:selected
{
/*border:1px solid blue;
border-bottom-color: none;
border-top-left-radius: 1px;
border-top-right-radius: 1px;*/
/*margin-left: 2px;
margin-right: 2px;*/
/*border: 1px solid #BAC9DB;
border-top: 1px solid #BAC9DB;
background: rgb(255,255,255);
font: Italic ;
margin:5px;*/
}
#tabWxMain QTabBar::tab:!selected
{
/*background: rgb(189,215,238);
border-bottom: 1px solid red;
margin-top: 1px;
border: none;
border-bottom-color: #FFFFFF;*/
/* margin-left: 2px;
margin-right: 2px;
border-left-color: #FFFFFF;*/
}
#tabWxMain QTabBar::tab:hover :selected
{
/*border: 2px solid black;
background-color: black;
border-top-left-radius: 5px;
border-top-right-radius: 5px;*/
}
#tabWxMain QTabBar::tab:hover:!selected
{
/*border: 1px solid red;*/
}
#tabWxMain QTabWidget::pane{
/*border-width:4px;
border-color:red;
border-style: solid;
background-color: transparent;
border: 1px solid red; top: -1px;background-color:grey;*/
}
#tabWxMain::pane
{
border-width: 1px;
border-color: rgb(192, 192, 192);
border-style:solid;
top: -1px;/*background-color:grey;*/
}
#tabWxMain QGroupBox{
border-left: 2px solid #B0B0B0;
border-top: 0px solid gray;
}
#tabWxMain QGroupBox::title {
color: #081121/*#738399*/;
subcontrol-position: bottom center;
}
/* QWebView */
QWebView {
background-color: transparent;
}
#iWxWelcome #groupBox_2{
background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(0, 77, 0, 255), stop:1 rgba(255, 255, 255, 255));
}
QScrollBar:horizontal{
background:#transparent;
padding:0px;
border-radius:10px;
/*max-height:12px;*/
height:24px;
}
QScrollBar::handle:horizontal{
background:rgb(220,220,220);
min-width:80px;
border-radius:10px;
/*min-width: 20px;
margin-bottom: 4px;
margin-top: 4px;*/
}
QScrollBar::handle:horizontal:hover{
background:rgb(220,220,220);
}
QScrollBar::handle:horizontal:pressed{
background:rgb(192,192,192);
}
QScrollBar::add-page:horizontal{
background:none;
}
QScrollBar::sub-page:horizontal{
background:none;
}
QScrollBar::add-line:horizontal{
background:none;
}
QScrollBar::sub-line:horizontal{
background:none;
}
QScrollBar:vertical{
background:#transparent;
padding:0px;
border-radius:5px;
/*max-width:10px;*/
width:18px;
}
QScrollBar::handle:vertical{
background:rgb(220,220,220);
min-height:100px;
border-radius:10px;
}
QScrollBar::handle:vertical:hover{
background:rgb(220,220,220);
}
QScrollBar::handle:vertical:pressed{
background:rgb(192,192,192);
}
QScrollBar::add-page:vertical{
background:none;
}
QScrollBar::sub-page:vertical{
background:none;
}
QScrollBar::add-line:vertical{
background:none;
}
QScrollBar::sub-line:vertical{
background:none;
}

File diff suppressed because one or more lines are too long

@ -1,4 +1,6 @@
[20241018 WTAI V0.81]
[20240401 WTAI V0.80]
create table J_JOB_DETAILS (

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -12,7 +12,7 @@ Customer = 研究院\r\n试井相关研究人员;
PtyAdvanced = 1; 属性采用高级模式
[Version]
DbVer = V0.80 ;数据库版本
DbVer = V0.81 ;数据库版本
;数据库选择相关
[DataBaseSrc]
@ -76,7 +76,7 @@ wLineCountPerSpan = 461e8b88f5f7119a7c45dc91a59fa029; 导出word时内部描
NaviShowMode = 1; 模型导航模式1为菜单模式其它原来模式
SegMaxToTrim = 5; 一旦流动段多于该数,则仅仅对当前段进行处理
CustomThin = 1; 是否允许定制抽稀参数
TailorOffset = 8; (范围0-50%)
TailorOffset = 0; (范围0-50%)
BaseResolutionW = 1920; 基准分辨率 1024 1920
BaseResolutionH = 1080;768 1080
NovelQss = 0; 是否启用新的样式表ZXF202407

@ -58,6 +58,57 @@ div.block
<div class='block'>
<h2 class="title">软件版本20241026</h2>
<ol>
<li class="li_important">调整整个系统平台由float全面改为double彻底去除dloat</li>
<li class="li_important">优化PVT功能拆分及逻辑优化整合为数值试井做准备</li>
<li class="li_important">优化:压力导数求解方法</li>
<li class="li_important">优化:特征线与导数线交互联动/编辑调整</li>
<li>优化:双对数曲线左上角阴影问题</li>
<li>优化:绘图属性页改为扁平模式</li>
<li>优化:表格最后一列自动扩展模式</li>
<li>新增:边界可视化交互编辑(待算法支持)</li>
<li>修复:点绘图对象锁定无效的问题</li>
<li>修复:光滑因子(不勾选)时无效问题,并且增加实时刷新</li>
<li>修复数据表以Double传入无法更新列数问题</li>
</ol>
<h2 class="title">软件版本20241011</h2>
<ol>
<li>调整:成果对比功能,主要是去除模型序列相关选项、优化窗口半透明显示效果</li>
<li>调整Ribbon中ListWidget效果窗口显示</li>
<li class="li_important">优化模型选项对话框序列化支持兼容性支持只要ID不变即可但模型项可以增减调整</li>
<li>优化:表格数据复制时增加表头</li>
<li>优化:高分辨率情况下右侧属性页第一列太窄</li>
<li>优化:高分辨率情况下绘图临时图层文字过大问题</li>
<li>优化:光标十字线</li>
<li>优化:属性页分组图标显示效果</li>
<li>新增:解释结果增加三种右键,允许拷贝结果</li>
<li>新增:框架支持自定义表名表类型,以满足数值试井需要</li>
</ol>
<h2 class="title">软件版本20241010</h2>
<ol>
<li>调整:软件许可时间</li>
<li>调整:处理结果显示方式调整</li>
</ol>
<h2 class="title">软件版本20240927</h2>
<ol>
<li class="li_important">新增:数值试井框架版本</li>
<li>调整:四窗口支持关闭/重开(动态模式)</li>
<li>调整:井位图功能移植为功能菜单触发</li>
<li>调整New Tab页功能移植为右键复制</li>
<li>调整:试井设计首选项调整(即试井分析相关的设置项)</li>
<li>调整:剥离敏感性分析功能(单图出图,而非在双对数上)</li>
<li>调整拆分css根据分辨率进行适配选取</li>
<li>优化:优化表格效果(表头线对不齐、序号列太窄等)</li>
<li>优化QLabel对于上标支持的调整优化原先10^4显示错误</li>
<li>优化:参数单位进一步规范(·统一为.</li>
<li>优化Worktile问题10余个</li>
<li>进行中:继续进行模型选项界面优化</li>
</ol>
<h2 class="title">软件版本20240922</h2>
<ol>
<li class="li_important">优化:进一步优化高分辨率下显示效果</li>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -188,58 +188,40 @@
<Tab ID="5" Name="NumericalTest" Alias="数值试井(N)" >
<Group Name="JobEdit" Alias="PVT管理">
<Cmd ID="3006" Bounds="0,0" Name="JobNew" Alias="新建PVT分析" Icon="JobNew" />
<Cmd ID="3007" Bounds="1,0" Name="JobEdit" Alias="PVT管理" Icon="JobEdit" />
<Group Name="JobEdit" Alias="分析管理">
<Cmd ID="5001" Bounds="0,0,2,1" Name="JobNew" Alias="新建分析" Icon="JobNew" />
<Cmd ID="3006" Bounds="0,1,2,1" Name="PvtNew" Alias="新建PVT" Icon="JobNew" />
<Cmd ID="3007" Bounds="0,2,2,1" Name="JobEdit" Alias="PVT管理" Icon="JobEdit" />
</Group>
<Group Name="NtInit" Alias="油气藏初始化">
<Cmd ID="5001" Bounds="0,0,2,1" Name="NmDemo" Alias="窗体样例" Icon="NmDemo" />
<Cmd ID="5002" Bounds="0,1" Name="TODO1" Alias="TODO1" Icon="Time" />
<Cmd ID="5003" Bounds="1,1" Name="TODO2" Alias="TODO2" Icon="Time" />
<Cmd ID="5004" Bounds="0,2" Name="TODO3" Alias="TODO3" Icon="Time" />
<Cmd ID="5005" Bounds="1,2" Name="TODO4" Alias="TODO4" Icon="Time" />
</Group>
<Group Name="NtGrid" Alias="网格划分">
<Cmd ID="5101" Bounds="0,0,2,1" Name="WellGrid" Alias="网格准备" Icon="PrepareGrid" />
<Cmd ID="5102" Bounds="0,1,2,1" Name="RunGrid" Alias="网格划分" Icon="PlateFit" />
</Group>
<Group Name="NtCal" Alias="数值计算">
<Cmd ID="5201" Bounds="0,0,2,1" Name="AnalMap" Alias="计算" Icon="RunEx" />
<Cmd ID="5202" Bounds="0,1,2,1" Name="AnalPF" Alias="辅助拟合" ExtInfo="PF" Icon="RunOther" />
</Group>
<Group Name="Nt3D" Alias="绘图渲染">
<Cmd ID="5301" Bounds="0,0,2,1" Name="AnalMap" Alias="饱和度" Icon="PF" />
<Cmd ID="5301" Bounds="0,1,2,1" Name="AnalPF" Alias="孔隙度" ExtInfo="PF" Icon="PF" />
<Group Name="SegAnal" Alias="流动段分析">
<Cmd ID="3003" Bounds="0,0,2,1" Name="AnalPF" Alias="流动段选择" ExtInfo="PF" Icon="PF" />
</Group>
<Group Name="NtTool" Alias="相关工具">
<Cmd ID="5401" Bounds="0,0" Name="Time" Alias="工具1" Icon="Time" />
<Cmd ID="5402" Bounds="1,0" Name="ShowModelCharts" Alias="工具2" Icon="ShowModelCharts" />
<Cmd ID="5403" Bounds="0,1" Name="ShowModelSketch" Alias="工具3" Icon="ShowModelSketch" />
<Cmd ID="5404" Bounds="1,1" Name="SaveAsModelSketch" Alias="工具4" Icon="SaveAsModelSketch" />
<Group Name="NtInit" Alias="油气藏初始化">
<Cmd ID="5102" Bounds="0,0,2,1" Name="NmDemo" Alias="油藏地图" Icon="NmDemo" />
<Cmd ID="5103" Bounds="0,1,2,1" Name="NmDemo" Alias="多边形边界" Icon="NmDemo" />
<Cmd ID="5104" Bounds="0,2" Name="NmDemo" Alias="矩形边界" Icon="NmDemo" />
<Cmd ID="5105" Bounds="1,2" Name="NmDemo" Alias="圆形边界" Icon="NmDemo" />
<Cmd ID="5106" Bounds="0,3,2,1" Name="NmDemo" Alias="断层" Icon="NmDemo" />
<Cmd ID="5107" Bounds="0,5" Name="NmDemo" Alias="选择井" Icon="NmDemo" />
<Cmd ID="5108" Bounds="1,5" Name="NmDemo" Alias="新建井" Icon="NmDemo" />
<Cmd ID="5109" Bounds="0,6,2,1" Name="NmDemo" Alias="裂缝" Icon="NmDemo" />
<Cmd ID="5110" Bounds="0,7" Name="NmDemo" Alias="区域" Icon="NmDemo" />
<Cmd ID="5111" Bounds="1,7" Name="NmDemo" Alias="标记区域" Icon="NmDemo" />
<Cmd ID="5112" Bounds="0,8,2,1" Name="TODO1" Alias="分层" Icon="Time" />
<Cmd ID="5113" Bounds="0,9,2,1" Name="TODO3" Alias="储层特性" Icon="Time" />
<Cmd ID="5114" Bounds="0,10,2,1" Name="TODO4" Alias="网格划分" Icon="Time" />
<Cmd ID="5115" Bounds="0,11,2,1" Name="TODO4" Alias="计算求解" Icon="Time" />
<Cmd ID="5116" Bounds="0,12,2,1" Name="TODO4" Alias="后处理" Icon="Time" />
</Group>
<Group Name="NtRst" Alias="成果管理">
<Cmd ID="5501" Bounds="0,0" Name="JobLoad" Alias="加载作业" Icon="LoadJobs" />
<Cmd ID="5502" Bounds="1,0" Name="JobSave" Type="1" ExtNames="JobSaveCur;JobSaveAll" ExtInfo="保存当前作业;保存所有作业" Alias="保存作业" Icon="SaveJobs" />
<Cmd ID="5503" Bounds="0,1,2,1" Name="ToAnalytical" Alias="To-解析" Icon="LoadJobs" />
</Group>
<Group Name="NtWindow" Alias="窗口显示">
<Cmd ID="5601" Bounds="0,0" Name="VisibleModels" Alias="窗口1" Icon="VisibleModels" />
<Cmd ID="5602" Bounds="1,0" Name="VisibleParameters" Alias="窗口2" Icon="VisibleParameters" />
<Cmd ID="5603" Bounds="0,1" Name="InputBasic" Alias="窗口3" Icon="InputBasic" />
<Cmd ID="5604" Bounds="1,1" Name="InputFluid" Alias="窗口4" Icon="InputFluid" />
</Group>
<Group Name="DataFit" Alias="数据拟合">
<Cmd ID="3101" Bounds="0,0,2,1" Name="FitModel" Alias="模型生成" Icon="FitModel" />
<Cmd ID="3102" Bounds="0,1,2,1" Name="AutoFit" Alias="自动拟合" Icon="AutoFit" />
<Cmd ID="3103" Bounds="0,2,2,1" Name="PlateFit" Alias="敏感性分析" Icon="PlateFit" />
</Group>
</Tab>

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
<zhAttributes>
<PtyGroup Label="对象" Name="ZxObjBase" Order="1">
<PtyItem Label="对象名称" Name="ZxObjBase.Name" Editor="Edit" Order="1" Path="ZxObjBase.cpp(595)"/>
<PtyItem Label="显示子对象" Name="ZxObjBase.ShowSubObjs" Editor="Bool" Order="2" Path="ZxObjBase.cpp(598)"/>
</PtyGroup>
<PtyGroup Label="对象" Name="Axis1" Order="2">
<PtyItem Label="名称" Name="Axis.Name" Editor="Edit" Order="1" Path="ZxSubAxisBase.cpp(418)"/>
<PtyItem Label="单位" Name="Axis.Unit" Editor="Edit" Order="2" Readonly="1" Path="ZxSubAxisBase.cpp(423)"/>
</PtyGroup>
<PtyGroup Label="范围" Name="Axis2" Order="3">
<PtyItem Label="最小" Name="Scale.Min" Editor="Edit" Order="1" Path="ZxSubAxisBase.cpp(431)"/>
<PtyItem Label="最大" Name="Scale.Max" Editor="Edit" Order="2" Path="ZxSubAxisBase.cpp(432)"/>
</PtyGroup>
<PtyGroup Label="网格" Name="Axis3" Order="4">
<PtyItem Label="显示主刻度" Name="Axis.showBigScale" Editor="Bool" Order="1" Path="ZxSubAxisBase.cpp(439)"/>
<PtyItem Label="显示细分刻度" Name="Axis.showSmallScale" Editor="Bool" Order="2" Path="ZxSubAxisBase.cpp(440)"/>
<PtyItem Label="主刻度" Name="Axis.MainInterval" Editor="Edit" Order="3" Path="ZxSubAxisBase.cpp(433)"/>
<PtyItem Label="细分刻度" Name="Axis.SubInterval" Editor="Edit" Order="4" Path="ZxSubAxisBase.cpp(434)"/>
</PtyGroup>
<PtyGroup Label="显示模式" Name="Axis4" Order="5">
<PtyItem Label="刻度显于外侧" Name="Axis.scaleOutward" Editor="Bool" Order="1" Path="ZxSubAxisBase.cpp(441)"/>
<PtyItem Label="乘幂显示刻度" Name="Axis.showTickAsExp" Editor="Bool" Order="2" Path="ZxSubAxisBase.cpp(449)"/>
<PtyItem Label="小数位数" Name="Axis.DecimalNumber" Editor="IntSpin" Order="3" Path="ZxSubAxisBase.cpp(442)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Axis5" Order="6">
<PtyItem Label="名称字体" Name="Axis.NameFont" Editor="Font" Order="1" Path="ZxSubAxisBase.cpp(444)"/>
<PtyItem Label="刻度字体" Name="Axis.NumberFont" Editor="Font" Order="2" Path="ZxSubAxisBase.cpp(445)"/>
<PtyItem Label="幂字体" Name="Axis.IndexFont" Editor="Font" Order="3" Path="ZxSubAxisBase.cpp(448)"/>
<PtyItem Label="颜色" Name="Axis.Color" Editor="Color" Order="4" Path="ZxSubAxisBase.cpp(426)"/>
</PtyGroup>
<PtyGroup Label="基础" Name="Plot1" Order="7">
<PtyItem Label="显示标题" Name="Plot.ShowTitle" Editor="Bool" Order="1" Path="ZxPlotBase.cpp(689)"/>
<PtyItem Label="显示图例" Name="Plot.ShowLegend" Editor="Bool" Order="2" Path="ZxPlotBase.cpp(687)"/>
</PtyGroup>
<PtyGroup Label="网格" Name="Plot2" Order="8">
<PtyItem Label="显示主刻度X" Name="Plot.showScaleBigX" Editor="Bool" Order="1" Path="ZxPlotBase.cpp(692)"/>
<PtyItem Label="显示主刻度Y" Name="Plot.showScaleBigY" Editor="Bool" Order="2" Path="ZxPlotBase.cpp(693)"/>
<PtyItem Label="显示次刻度X" Name="Plot.showScaleSmallX" Editor="Bool" Order="3" Path="ZxPlotBase.cpp(695)"/>
<PtyItem Label="显示次刻度Y" Name="Plot.showScaleSmallY" Editor="Bool" Order="4" Path="ZxPlotBase.cpp(696)"/>
</PtyGroup>
<PtyGroup Label="填充" Name="Plot3" Order="9">
<PtyItem Label="渐变色1" Name="Plot.BKColor" Editor="Color" Order="1" Path="ZxPlotBase.cpp(682)"/>
<PtyItem Label="渐变色2" Name="Plot.BKColorEx" Editor="Color" Order="2" Path="ZxPlotBase.cpp(683)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Plot4" Order="10">
<PtyItem Label="边框颜色" Name="Plot.FrameColor" Editor="Color" Order="1" Path="ZxPlotBase.cpp(685)"/>
</PtyGroup>
<PtyGroup Label="边界" Name="Plot5" Order="11">
<PtyItem Label="边距" Name="Plot.Margin" Editor="Edit" Order="1" Path="ZxPlotBase.cpp(698)"/>
</PtyGroup>
<PtyGroup Label="其它" Name="Plot6" Order="12">
<PtyItem Label="标题位置" Name="Plot.TitlePos" Editor="Enum" Order="1" Path="ZxPlotBase.cpp(700)"/>
</PtyGroup>
<PtyGroup Label="基础" Name="ZxObj1" Order="13">
<PtyItem Label="曲线可见" Name="ZxObjCurveBase.CurveVisible" Editor="Bool" Order="1" Path="ZxObjCurvePressure.cpp(294)"/>
<PtyItem Label="线可见" Name="ZxObjCurveFlow.LineVisible" Editor="Bool" Order="2" Path="ZxObjCurveFlow.cpp(870)"/>
<PtyItem Label="流动段可见" Name="ZxObjCurveFlow.SegmentVisible" Editor="Bool" Order="3" Path="ZxObjCurveFlow.cpp(871)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="ZxObj2" Order="14">
<PtyItem Label="画笔" Name="ZxObjCurveBase.Pen" Editor="Pen" Order="1" Path="ZxObjCurvePressure.cpp(293)"/>
<PtyItem Label="流动线颜色" Name="ZxObjCurveBase.clrFlowLine" Editor="Color" Order="2" Path="ZxObjCurveFlow.cpp(872)"/>
<PtyItem Label="流动段颜色" Name="ZxObjCurveFlow.clrFlowSegment" Editor="Color" Order="3" Path="ZxObjCurveFlow.cpp(873)"/>
<PtyItem Label="点模式" Name="ZxObjCurveBase.Dot" Editor="Dot" Order="4" Path="ZxObjCurvePressure.cpp(295)"/>
<PtyItem Label="选中点模式" Name="ZxObjCurveBase.DotSel" Editor="Dot" Order="5" Path="ZxObjCurvePressure.cpp(296)"/>
</PtyGroup>
<PtyGroup Label="位置" Name="ZxObj3" Order="15">
<PtyItem Label="选择索引" Name="ZxObjCurveFlow.CurSegPtIndex" Editor="Edit" Order="1" Readonly="1" Path="ZxObjCurveFlow.cpp(875)"/>
</PtyGroup>
<PtyGroup Label="其它" Name="ZxObj4" Order="16">
<PtyItem Label="移动模式" Name="ZxObjCurveFlow.objCurveFlowMoveMode" Editor="Enum" Order="1" Path="ZxObjCurvePressure.cpp(300)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Legend1" Order="17">
<PtyItem Label="显示边框" Name="Ld.ShowFrame" Editor="Bool" Order="1" Path="ZxSubLegendEx.cpp(379)"/>
<PtyItem Label="边框画笔" Name="Ld.FramePen" Editor="Pen" Order="2" Path="ZxSubLegendEx.cpp(380)"/>
</PtyGroup>
<PtyGroup Label="分组标识" Name="Legend2" Order="18">
<PtyItem Label="填充色" Name="LdGroup.BackgrdClr" Editor="Color" Order="1" Path="ZxSubLegendEx.cpp(382)"/>
<PtyItem Label="填充色透明度" Name="LdGroup.BackgrdClrAlpha" Editor="Slider" Order="2" Path="ZxSubLegendEx.cpp(383)" Min="0" Max="100"/>
<PtyItem Label="分组名称字体" Name="LdGroup.TextFont" Editor="Font" Order="3" Path="ZxSubLegendEx.cpp(384)"/>
<PtyItem Label="分组名称颜色" Name="LdGroup.TextClr" Editor="Color" Order="4" Path="ZxSubLegendEx.cpp(385)"/>
</PtyGroup>
<PtyGroup Label="图例项" Name="Legend3" Order="19">
<PtyItem Label="填充颜色" Name="LdItem.BackgrdClr" Editor="Color" Order="1" Path="ZxSubLegendEx.cpp(387)"/>
<PtyItem Label="填充色透明度" Name="LdItem.BackgrdClrAlpha" Editor="Slider" Order="2" Path="ZxSubLegendEx.cpp(388)" Min="0" Max="100"/>
<PtyItem Label="图例名称字体" Name="LdItem.TextFont" Editor="Font" Order="3" Path="ZxSubLegendEx.cpp(389)"/>
<PtyItem Label="图例名称颜色" Name="LdItem.TextClr" Editor="Color" Order="4" Path="ZxSubLegendEx.cpp(390)"/>
</PtyGroup>
<PtyGroup Label="边界" Name="Legend4" Order="20">
<PtyItem Label="内缩进(px)" Name="Ld.MarginInner" Editor="Edit" Order="1" Readonly="1" Path="ZxSubLegendEx.cpp(392)"/>
<PtyItem Label="外缩进(px)" Name="Ld.MarginOuter" Editor="Edit" Order="2" Readonly="1" Path="ZxSubLegendEx.cpp(393)"/>
</PtyGroup>
<PtyGroup Label="整体位置" Name="Legend5" Order="21">
<PtyItem Label="位置" Name="Ld.LdPos" Editor="Enum" Order="1" Path="ZxSubLegendEx.cpp(366)"/>
</PtyGroup>
<PtyGroup Label="其它" Name="Legend6" Order="22" Expand="0">
<PtyItem Label="图示宽度" Name="Ld.LeftWidth" Editor="Edit" Order="1" Readonly="1" Path="ZxSubLegendEx.cpp(394)"/>
<PtyItem Label="标题高度" Name="Ld.GroupHeight" Editor="Edit" Order="2" Readonly="1" Path="ZxSubLegendEx.cpp(395)"/>
</PtyGroup>
<PtyGroup Label="对象" Name="Title1" Order="23">
<PtyItem Label="标题内容" Name="Title.TitleText" Editor="Edit" Order="1" Path="ZxSubTitle.cpp(97)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Title2" Order="24">
<PtyItem Label="标题字体" Name="Title.TextFont" Editor="Font" Order="1" Path="ZxSubTitle.cpp(99)"/>
<PtyItem Label="标题颜色" Name="Title.TextColor" Editor="Color" Order="2" Path="ZxSubTitle.cpp(98)"/>
</PtyGroup>
<PtyGroup Label="基础" Name="Rect1" Order="25">
<PtyItem Label="显示边框" Name="Rect.ShowBox" Editor="Bool" Order="1" Path="ZxObjRect.cpp(309)"/>
</PtyGroup>
<PtyGroup Label="填充" Name="Rect2" Order="26">
<PtyItem Label="背景颜色" Name="Rect.BackgroundColor" Editor="Color" Order="1" Path="ZxObjRect.cpp(307)"/>
<PtyItem Label="背景颜色透明度" Name="Rect.BackgroundAlpha" Editor="Slider" Order="2" Path="ZxObjRect.cpp(308)" Min="0" Max="100"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Rect3" Order="27">
<PtyItem Label="画笔" Name="Rect.BoundPen" Editor="Pen" Order="1" Path="ZxObjRect.cpp(310)"/>
</PtyGroup>
<PtyGroup Label="边界" Name="Band1" Order="28">
<PtyItem Label="左边界" Name="Band.L" Editor="Edit" Order="1" Path="ZxObjBand.cpp(223)"/>
<PtyItem Label="右边界" Name="Band.R" Editor="Edit" Order="2" Path="ZxObjBand.cpp(224)"/>
<PtyItem Label="上边界" Name="Band.T" Editor="Edit" Order="3" Path="ZxObjBand.cpp(228)"/>
<PtyItem Label="下边界" Name="Band.B" Editor="Edit" Order="4" Path="ZxObjBand.cpp(229)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Point" Order="29">
<PtyItem Label="点模式" Name="Point.Dot" Editor="Dot" Order="1" Path="ZxObjPoint.cpp(157)"/>
</PtyGroup>
<PtyGroup Label="基础" Name="Line1" Order="30">
<PtyItem Label="显示点" Name="Line.ShowDotPoint" Editor="Bool" Order="1" Path="ZxObjLine.cpp(283)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Line2" Order="31">
<PtyItem Label="画笔" Name="Line.Pen" Editor="Pen" Order="1" Path="ZxObjLine.cpp(282)"/>
<PtyItem Label="点模式" Name="Line.Dot" Editor="Dot" Order="2" Path="ZxObjLine.cpp(284)"/>
</PtyGroup>
<PtyGroup Label="位置" Name="Line3" Order="32">
<PtyGroup Label="起点" Name="StartPos" Order="1" Expand="0">
<PtyItem Label="X" Name="StartPos.X" Editor="Edit" Order="1" Path="ZxObjLine.cpp(278)"/>
<PtyItem Label="Y" Name="StartPos.Y" Editor="Edit" Order="2" Path="ZxObjLine.cpp(279)"/>
</PtyGroup>
<PtyGroup Label="终点" Name="EndPos" Order="33" Expand="0">
<PtyItem Label="X" Name="EndPos.X" Editor="Edit" Order="1" Path="ZxObjLine.cpp(280)"/>
<PtyItem Label="Y" Name="EndPos.Y" Editor="Edit" Order="2" Path="ZxObjLine.cpp(281)"/>
</PtyGroup>
</PtyGroup>
<PtyGroup Label="填充" Name="Polygon1" Order="34">
<PtyItem Label="是否填充" Name="Polygon.IsFill" Editor="Bool" Order="1" Path="ZxObjPolygon.cpp(283)"/>
<PtyItem Label="填充颜色" Name="Polygon.FillColor" Editor="Color" Order="2" Path="ZxObjPolygon.cpp(282)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="Polygon2" Order="35">
<PtyItem Label="边界画笔" Name="Polygon.Pen" Editor="Pen" Order="1" Path="ZxObjPolygon.cpp(281)"/>
</PtyGroup>
<PtyGroup Label="对象" Name="Text1" Order="36">
<PtyItem Label="文本" Name="Text.Text" Editor="Edit" Order="1" Path="ZxObjText.cpp(206)"/>
</PtyGroup>
<PtyGroup Label="显示模式" Name="Text2" Order="37">
<PtyItem Label="自动调整" Name="Text.AutoAdjust" Editor="Bool" Order="1" Path="ZxObjText.cpp(209)"/>
<PtyItem Label="对齐模式" Name="Text.AlignFlag" Editor="Flags" Order="2" Path="ZxObjText.cpp(213)"/>
<PtyGroup Label="文本对齐" Name="Align" Order="3" Expand="0">
<PtyItem Label="水平对齐" Name="Text.AlignHor" Editor="Enum" Order="1" Path="ZxObjText.cpp(216)"/>
<PtyItem Label="垂直对齐" Name="Text.AlignVert" Editor="Enum" Order="2" Path="ZxObjText.cpp(226)"/>
</PtyGroup>
</PtyGroup>
<PtyGroup Label="外观" Name="Text3" Order="38">
<PtyItem Label="字体" Name="Text.Font" Editor="Font" Order="2" Path="ZxObjText.cpp(207)"/>
<PtyItem Label="字体颜色" Name="Text.Color" Editor="Color" Order="3" Path="ZxObjText.cpp(208)"/>
<PtyItem Label="边框画笔" Name="Text.BorderPen" Editor="Pen" Order="9" Path="ZxStringItem.cpp(121)"/>
</PtyGroup>
<PtyGroup Label="其它" Name="Text4" Order="39">
<PtyItem Label="允许编辑" Name="Text.ManulEdit" Editor="Bool" Order="5" Path="ZxObjText.cpp(210)"/>
</PtyGroup>
<PtyGroup Label="图片" Name="Image" Order="40">
<PtyItem Label="来源" Name="Image.ImgPath" Editor="Picture" Order="1" Path="ZxObjImage.cpp(110)"/>
</PtyGroup>
<PtyGroup Label="色表" Name="ColorTable" Order="41">
<PtyItem Label="名称" Name="ColorTable.Name" Editor="Edit" Order="1" Path="ZxSubColorTable.cpp(287)"/>
<PtyItem Label="单位" Name="ColorTable.Unit" Editor="Edit" Order="2" Path="ZxSubColorTable.cpp(288)"/>
<PtyItem Label="最大" Name="ColorTable.Max" Editor="Edit" Order="3" Path="ZxSubColorTable.cpp(289)"/>
<PtyItem Label="最小" Name="ColorTable.Min" Editor="Edit" Order="4" Path="ZxSubColorTable.cpp(290)"/>
<PtyItem Label="类型" Name="ColorTable.ColorType" Editor="Enum" Order="5" Path="ZxSubColorTable.cpp(292)"/>
</PtyGroup>
<PtyGroup Label="ZxObjCurveBar.Border" Name="ZxObjCurveBar.Border" Order="42">
<PtyItem Label="" Name="ZxObjCurveBar.Border.Visible" Editor="Bool" Order="1" Path="ZxObjCurveBar.cpp(460)"/>
<PtyItem Label="Pen" Name="ZxObjCurveBar.Border.Pen" Editor="Pen" Order="2" Path="ZxObjCurveBar.cpp(463)"/>
</PtyGroup>
<PtyGroup Label="ZxObjCurveBar.Bar" Name="ZxObjCurveBar.Bar" Order="43">
<PtyItem Label="Width" Name="ZxObjCurveBar.Bar.Width" Editor="Edit" Order="1" Path="ZxObjCurveBar.cpp(466)"/>
<PtyItem Label="" Name="ZxObjCurveBar.Bar.Fill" Editor="Edit" Order="2" Path="ZxObjCurveBar.cpp(467)"/>
<PtyItem Label="" Name="ZxObjCurveBar.Bar.FillClr" Editor="Color" Order="3" Path="ZxObjCurveBar.cpp(470)"/>
</PtyGroup>
<PtyGroup Label="ZxObjCurveBar.Value" Name="ZxObjCurveBar.Value" Order="44">
<PtyItem Label="" Name="ZxObjCurveBar.Value.PinValue" Editor="Edit" Order="1" Path="ZxObjCurveBar.cpp(473)"/>
<PtyItem Label="" Name="ZxObjCurveBar.Value.PinFont" Editor="Font" Order="2" Path="ZxObjCurveBar.cpp(476)"/>
<PtyItem Label="" Name="ZxObjCurveBar.Value.PinClr" Editor="Color" Order="3" Path="ZxObjCurveBar.cpp(477)"/>
</PtyGroup>
<PtyGroup Label="ZxObjCurveBar" Name="ZxObjCurveBar" Order="45">
<PtyItem Label="" Name="ZxObjCurveBar.Show3D" Editor="Edit" Order="1" Path="ZxObjCurveBar.cpp(479)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="WmLine" Order="46">
<PtyItem Label="画笔" Name="WmLine.Pen" Editor="Pen" Order="1" Path="nmObjLine.cpp(278)"/>
</PtyGroup>
<PtyGroup Label="外观" Name="ObjPolygon" Order="47">
<PtyItem Label="边框画笔" Name="ObjPolygon.Pen" Editor="Pen" Order="1" Path="nmObjPolygon.cpp(183)"/>
<PtyItem Label="填充背景" Name="ObjPolygon.BackgrdColor" Editor="Color" Order="2" Path="nmObjPolygon.cpp(184)"/>
</PtyGroup>
</zhAttributes>

@ -42,35 +42,35 @@ public:
bool is_segment_intersect(double ax, double ay, double bx, double by, double cx, double cy, double dx, double dy);
// 角度
float degToRad(float _deg);
float radToDeg(float _rad);
float kross(const QPointF& a, const QPointF& b);
float lengthSquared(const QPointF& a);
float pointSegmentDistanceSquared2D(const QPointF& q, const QPointF& p0, const QPointF& p1, float & t);
float pointLineDistanceSquared2D(const QPointF& q, const QPointF& p0, const QPointF& p1, float & t);
double degToRad(double _deg);
double radToDeg(double _rad);
double kross(const QPointF& a, const QPointF& b);
double lengthSquared(const QPointF& a);
double pointSegmentDistanceSquared2D(const QPointF& q, const QPointF& p0, const QPointF& p1, double & t);
double pointLineDistanceSquared2D(const QPointF& q, const QPointF& p0, const QPointF& p1, double & t);
// 距离(有待优化)
double dot(double ax, double ay, double bx, double by);
double distance_squared(double ax, double ay, double bx, double by);
double distance(double ax, double ay, double bx, double by);
float distance(float x0, float y0, float x1, float y1);
float distanceSquared(float x0, float y0, float x1, float y1);
float dot(const QPointF& a, const QPointF& b);
//double distance(double x0, double y0, double x1, double y1);
double distanceSquared(double x0, double y0, double x1, double y1);
double dot(const QPointF& a, const QPointF& b);
int findIntersection(const QPointF& seg0_a, const QPointF& seg0_b, const QPointF& seg1_a, const QPointF& seg1_b, QPointF ip[2]);
int findIntersection(const QLineF & seg0, const QLineF & seg1, QPointF ip[2]);
void cubic_bezier(float & _x, float & _y, float t,
float _x0, float _y0, float _x1, float _y1,
float _x2, float _y2, float _x3, float _y3);
void cubic_bezier(double & _x, double & _y, double t,
double _x0, double _y0, double _x1, double _y1,
double _x2, double _y2, double _x3, double _y3);
bool polygonContainsPoint(const QVector<QPointF> & poly, float x, float y);
bool polygonContainsPoint(const QVector<QPointF> & poly, double x, double y);
bool polygonIsCcw(const QVector<QPointF> & poly);
float polygonArea(const QVector<QPointF> & poly);
void polygonSimplify(QVector<QPointF> & out, const QVector<QPointF> & in, float maxErrDistance2);
double polygonArea(const QVector<QPointF> & poly);
void polygonSimplify(QVector<QPointF> & out, const QVector<QPointF> & in, double maxErrDistance2);
int _findIntersection(float u0, float u1, float v0, float v1, float w[2]);
void simplifyPolygonRdp(QVector<QPointF> & out, const QPointF in[], int in_count, int ia, int ib, float maxErrDistance2);
int _findIntersection(double u0, double u1, double v0, double v1, double w[2]);
void simplifyPolygonRdp(QVector<QPointF> & out, const QPointF in[], int in_count, int ia, int ib, double maxErrDistance2);
// 计算pt到直线line的垂足。返回值表示垂足是否在线段内部含端点
bool getPadel(const QPointF& pt, const QLineF& line, QPointF& ptPadel);
@ -78,26 +78,26 @@ public:
public:
/// @brief 计算直线距离
static float calDistanceOf(QPointF pt1, QPointF pt2);
static double calDistanceOf(QPointF pt1, QPointF pt2);
/// @brief 计算点P(x,y)与X轴正方向的夹角, 夹角弧度
static float calRadToAxisX(float x, float y);
static double calRadToAxisX(double x, double y);
/// @brief 计算点P(x,y)与X轴正方向的夹角, 夹角°
static float calAngleToAxisX(float x, float y);
static double calAngleToAxisX(double x, double y);
/// @brief 点pt围绕点ptCenter旋转弧度fAngleR后的坐标,fAngleR 旋转弧度 or du顺时针为正
static QPointF rotatePt(QPointF pt, QPointF ptCenter, \
float fAngleR, bool bRad = true);
double fAngleR, bool bRad = true);
/// @brief 计算两点形成直线的倾斜角0-180
static float calSlopeOf(QPointF pt1, QPointF pt2);
static double calSlopeOf(QPointF pt1, QPointF pt2);
/// @brief 判断两条直线是否平行;
static bool isParallelLines(QLineF line1, QLineF line2);
/// @brief 计算两条直线的距离(如果不平行,返回-1;
static float calDisOfLines(QLineF line1, QLineF line2);
static double calDisOfLines(QLineF line1, QLineF line2);
/// @brief 计算两条直线/线段的相交点坐标;
/// bOnlySegment:true 只考虑线段false考虑直线即线段延长线
@ -106,12 +106,12 @@ public:
bool bOnlySegment = false);
/// @brief 计算点到直线距离
static float calDisOfPt2Line(QPointF pt, QLineF line);
static float calDisOfPt2Line(QPointF pt, \
static double calDisOfPt2Line(QPointF pt, QLineF line);
static double calDisOfPt2Line(QPointF pt, \
QPointF pt1, QPointF pt2);
// y = kx + b
static double leastSquareMethodSlop(int cnt,const float x[],const float y[],double &b);
static double leastSquareMethodSlopEx(int cnt,const float x[],const float y[],double &b);
static double leastSquareMethodSlop(int cnt,const double x[],const double y[],double &b);
static double leastSquareMethodSlopEx(int cnt,const double x[],const double y[],double &b);
};

@ -18,7 +18,7 @@ public:
static int factorial(int i);
/// @brief 数据是否有效
static bool isValidValue(float f);
static bool isValidValue(double f);
template<typename T> static bool isValidValue(T v)
{
T tTemp = v;
@ -36,7 +36,7 @@ public:
}
/// @brief 判断数据是否有限,非无穷大或无穷小
static bool isLimitedValue(float f);
static bool isLimitedValue(double f);
template<typename T> static bool isLimitedValue(T v)
{
T tTemp = v;

@ -7,39 +7,26 @@
class IxPtyPano;
// 属性条目
// 属性项:虚接口
class IxPtyItem
: virtual public IxInterface
{
public:
enum ItemType
{
typeDefault,
typeEnum,
typeSymbol
};
// 属性编辑器
// 载体
virtual IxPtyPano* getPtyPano() const = 0;
// 父条目
// 父级:属性项
virtual IxPtyItem* getParent() const = 0;
// 是否分组
virtual bool isGroup() const = 0;
// 获取条目类型
virtual ItemType getItemType() const = 0;
// 设置条目类型
virtual void setItemType(ItemType _type) = 0;
// 设置取值范围
// 取值范围
virtual void setLimit(int nMin, int nMax) = 0;
virtual void setLimit(double fMin, double fMax) = 0;
// 设置可选条目
// 对于下拉类型的设定
virtual void setOptions(const QStringList& listName, const QList<QVariant>& listValue) = 0;
virtual void setOptions(const QStringList& listName, const QStringList& listValue) = 0;
virtual void setOptions(const QStringList& listName, const QList<int>& listValue) = 0;

@ -15,14 +15,14 @@ class IxPtyItemEditor
public:
// 绑定属性条目
virtual void bindItem(IxPtyItem *) = 0;
virtual void bindItem(IxPtyItem*) = 0;
// 更改配置
virtual void setConfig(ZxXpfNode*) = 0;
// 更新内容
virtual void updateValue() = 0;
// 更改配置
virtual void setConfig(ZxXpfNode *) = 0;
// 激活
virtual void activate() = 0;
virtual void deactivate() = 0;
@ -32,5 +32,8 @@ public:
// 双击
virtual void onDoubleClicked(int n) = 0;
// 显示文本
virtual QString getShowText() = 0;
};

@ -32,7 +32,9 @@ public:
virtual IxPtyItem* addGroup(const QString& key, bool expand = true, bool visible = true) = 0;
// 添加属性
virtual IxPtyItem* add(ZX_PROPERTY_CHANGED_CALLBACK callback, const QString& key, const QVariant& var, IxPtyItem::ItemType type = IxPtyItem::typeDefault) = 0;
virtual IxPtyItem* add(ZX_PROPERTY_CHANGED_CALLBACK callback, \
const QString& key, \
const QVariant& var) = 0;
// 填属性表
virtual void beginSession(const QString& configName, IxInterface* pSessionOwner) = 0;

@ -101,7 +101,7 @@ public:
virtual void setBounds(const QRectF& rect, bool bSendEvent = true) = 0;
// 设置图元边框
virtual void setBounds(float x, float y, float width, float height, bool bSendEvent = true) = 0;
virtual void setBounds(double x, double y, double width, double height, bool bSendEvent = true) = 0;
// 判断图元是否完全相等
virtual bool isEqual(const IxRenderItem* pAnother) const = 0;

@ -41,7 +41,7 @@ public:
bool forceSymbolCache : 1;
// 控制点的(建议)尺寸
float handleSize;
double handleSize;
// 绘制自身条件. 不满足条件的不画自身, 但不影响子图件的绘制
ZxFilterFun selfFilter;
@ -50,7 +50,7 @@ public:
ZxFilterFun childrenFilter;
// 视图的缩放率
float viewZoom;
double viewZoom;
// 是否在导出pdf
bool exportingPdf;

@ -0,0 +1,18 @@
#pragma once
#include "iBase_global.h"
#include "ZxXpf.h"
// Xpf文件格式Helper
class I_BASE_EXPORT ZxXpfHelper
{
public:
static bool getMinMax(ZxXpfNode* node, int& nMin, int& nMax, \
int nDefaultMin = -1e8, int nDefaultMax = 1e8);
static bool getMinMax(ZxXpfNode* node, double& dMin, double& dMax, \
double dDefaultMin = -1e32, double dDefaultMax = 1e32);
};

@ -26,8 +26,8 @@
#define SYS_VALUE_PI 3.14159265358979
/// @brief 数组定义
typedef QVector<float> VecFloat;
typedef QVector< QVector<float> > VVecFloat;
//typedef QVector<double> VecDouble;
//typedef QVector< QVector<double> > VVecDouble;
typedef QVector<double> VecDouble;
typedef QVector< QVector<double> > VVecDouble;
typedef QVector<int> VecInt;

@ -81,14 +81,14 @@ enum DataFittingType
// 坐标轴类型
enum AxisType
{
AXIS_Log = 0, //对数(float)
AXIS_Linear, //线性(float)
AXIS_Log = 0, //对数(double)
AXIS_Linear, //线性(double)
AXIS_Int, //整形
AXIS_Date, //日期
AXIS_Str, //字符串
AXIS_Unknown
};
#define AXIS_Float AXIS_Linear
#define AXIS_Double AXIS_Linear
// 坐标轴在图形中的位置,
enum AxisPos

@ -50,7 +50,7 @@ public:
virtual bool runBatchValues(VVecVariant vvecData, QStringList* pVecTitles, \
QMap<int, QString>& mapImgs, QMap<int, QPointF>& mapSizes, \
int nRowFrom, int nColFrom, \
float fImgColWidth, \
double fImgColWidth, \
int nTemplIndex, \
QString& sLog);

@ -19,6 +19,12 @@ public:
explicit ZxComboBoxFuzzy(QWidget* parent = 0);
~ZxComboBoxFuzzy();
/// @brief 参数传递,确定默认值
/// @param listAllItems 所有数据项
/// @param listCbxs 复选项名称列表,默认为空
/// @param sRadio 单选项名称,默认为空
/// @note 如果sRadio为空且listCbxs非空
/// 则指定sRadio为listCbxs第一个
void setInfos(QStringList& listAllItems, \
QStringList listCbxs = QStringList(), \
QString sRadio = "");
@ -33,6 +39,16 @@ public:
QVector<int> vecIndexCbxs = VecInt(), \
int indexRadio = -1);
/// @brief 设定排外互斥的项比如UserInput、Table、Const等等只适用于PVT
void setExclusiveItems(QStringList& list);
/// @brief 返回所有项
QStringList getAllItems();
/// @brief 返回勾选项索引
QVector<int> getCheckedIndexs();
/// @brief 返回单选项索引
int getRadioIndex();
private:
void init();
@ -52,25 +68,29 @@ private slots:
void slotCheckBoxStateChanged(int state);// 复选框状态变化槽函数
void slotRadioBtnToggled(bool checked);// 单选按钮状态变化槽函数
void slotOkClicked();// 确认按钮点击槽函数
void slotApplyClicked(); // 应用按钮点击槽函数
void slotCancelClicked();// 取消按钮点击槽函数
protected:
void showPopup();
void hidePopup();
bool eventFilter(QObject* obj, QEvent* event);
private:
QListWidget* m_pListWx; // 列表小部件指针,用于显示列表项
QFrame* m_pPopupFrame; // 弹出框架
QPushButton* m_pOkBtn; // 确认按钮
QPushButton* m_pCancelBtn; // 取消按钮
QPushButton* m_pBtnOk; // 确认按钮
QPushButton* m_pBtnApply; // 应用按钮
QPushButton* m_pBtnCancel; // 取消按钮
int m_nRadioIndex; // 单选按钮索引
QVector<int> m_vecCheckedIndices; // 复选框选中的索引
QVector<int> m_vecCheckedIndexs; // 复选框选中的索引
QVector<int> m_vecInitialCheckedIndices; // 初始状态时复选框选中的索引
int m_nInitialRadioIndex; // 初始状态时单选按钮的索引
QStringList m_listAllItems; // 所有选项内容
QStringList m_listExclusiveItems; //设定排外互斥的项比如UserInput、Table、Const等等只适用于PVT
};
//class MainWindow : public QMainWindow {

@ -102,8 +102,10 @@ public slots:
/// @brief 在外部触发关闭或者显示左侧工区数据树全部所有的Dock
virtual void slotLeftTreeDocksVisible(bool bVisible) = 0;
/// @brief 刷新Ribbon按钮状态
virtual void slotFreshRnStates() = 0;
/// @brief 刷新Ribbon按钮状态这是更新所有按钮
/// @param list可以为id也可以为name
/// @note 如果list为空则指的是Ribbon全部否则仅仅刷新指定的Btn
virtual void slotFreshRnStates(QStringList list) = 0;
/// @brief 获取井位图信息
virtual void slotGetWmInfos(QVector<ZxObjWmPoint*>&) = 0;

@ -0,0 +1,28 @@
#pragma once
#include <QSplitter>
#include "Defines.h"
#include "iPlugin_global.h"
// 主要重载其信号响应
class I_PLUGIN_EXPORT ZxSplitter :
public QSplitter
{
Q_OBJECT
public:
ZxSplitter(QWidget* parent = 0);
~ZxSplitter();
private:
protected:
void resizeEvent(QResizeEvent *resizeEvent);
signals:
protected:
};

@ -72,7 +72,7 @@ public:
// 数据传递
QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex()) const;
void setData(const VVecVariant &vecsData);
void setData(const VVecFloat &vecData);
//void setData(const VVecDouble &vecData);
void setData(const VVecDouble &vecData);
VVecVariant getData() const;
@ -163,9 +163,9 @@ public:
void restoreRowStates();
// 数据Mask
QMap<float, QVariant>* getMapValueMasksPtr();
bool getValueMask(float f, QVariant& o) const;
bool setValueMask(float f, QVariant o);
QMap<double, QVariant>* getMapValueMasksPtr();
bool getValueMask(double f, QVariant& o) const;
bool setValueMask(double f, QVariant o);
bool convertByMask(QVariant& v) const;
// 设置数据修改标记
@ -185,6 +185,13 @@ signals:
void dataPasted(const QModelIndex &topLeft, \
const QModelIndex &bottomRight);
// 当行列改变时,进行处理,该信号为新增信号
void sigDataSizeChanged();
// View是否最后一列自动扩展模式
void sigLastColAutoExt(bool& b);
void sigAdjustColAutoExt(bool b);
protected:
void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
@ -237,7 +244,7 @@ protected:
QVector<TableRowState> m_vecRowState;
// 对于特殊标示的显示,比如-9999显示为----99999显示为空
QMap<float, QVariant> m_mapValueMasks;
QMap<double, QVariant> m_mapValueMasks;
// 修改标记
bool m_bModified;

@ -30,6 +30,8 @@ public:
QAbstractItemModel* model = NULL);
virtual ~ZxTableView();
virtual void setModel(QAbstractItemModel* model);
// initMenu
virtual void initContextMenu();
@ -122,6 +124,14 @@ public slots:
void slotUpdateSectionWidth(int logicalIndex,int, int newSize);
void slotUpdateSectionHeight(int logicalIndex, int, int newSize);
// 当行列改变时,响应信号进行处理
void slotDataSizeChanged();
// View是否最后一列自动扩展模式
void slotLastColAutoExt(bool& b);
void slotAdjustColAutoExt(bool b);
protected:
// 内部实现

@ -65,7 +65,7 @@ public:
// 清空Layout内容
bool clearLayoutOf(QWidget* pWidget);
bool clearLayout(QLayout* pLayout);
bool hideLayout(QLayout* pLayout);
bool setLayoutVisible(QLayout* pLayout, bool bVisible);
public:

@ -16,20 +16,20 @@ class I_PROPERTY_EXPORT ZxBrushEdit : public QWidget
public:
explicit ZxBrushEdit(QWidget *parent = 0);
explicit ZxBrushEdit(QWidget* parent = 0);
void setBrush( const QBrush& brush );
void setBrush(const QBrush& brush);
QBrush getBrush();
signals:
//signals:
void signalBrushStyleChanged(int);
void signalBrushColorChanged(QColor);
// void signalBrushStyleChanged(int);
// void signalBrushColorChanged(QColor);
protected slots:
void onStyleClicked(int);
void onColorChanged(const QColor&);
virtual void onStyleClicked(int nStyle);
virtual void onColorChanged(const QColor& clr);
protected:
@ -39,18 +39,27 @@ protected:
protected:
void showBrushStyleWidget(const QRect &rcStyle);
void hideBrushStyleWidget();
void getConponentRect( QRect& rcStyle, QRect& rcColor );
// 布局
void splitSubBounds(QRect& rcStyle, QRect& rcColor);
// 获取子窗体(刷子+颜色)
ZxBrushStyleComboBox* getBrushStyleComboBox();
ZxColorPicker* getColorPicker();
// 显示隐藏
void showBrushStyleWidget(const QRect& rcStyle);
void hideBrushStyleWidget();
protected:
int m_colorWidth;//颜色部分的宽度
// 颜色部分的宽度
int m_nClrWidth;
QBrush m_brush;
ZxBrushStyleComboBox* m_brushStyle;
ZxColorPicker* m_colorPicker;
// 子窗体(刷子+颜色)
ZxBrushStyleComboBox* m_pBrushStyle;
ZxColorPicker* m_pClrPicker;
};

@ -1,15 +1,15 @@
#pragma once
#include "iProperty_global.h"
#include <QDialog>
#include <QTextEdit>
#include <QDir>
#include <ZxInterval.h>
#include "ZxInterval.h"
#include "ZxSerializer.h"
#include "iProperty_global.h"
// 颜色等级管理
class I_PROPERTY_EXPORT ZxColorLevel
{
public:
enum ClrFileMode
@ -37,13 +37,13 @@ public:
void insertRealColor(const double val, const QColor color); // 根据真实值设定颜色, 越过真实值范围将替换两端颜色
void insertRulerColor(const float mark, const QColor color); // 根据标尺位置设定颜色, 小于0或大于100为两端颜色
void insertRulerColor(const double mark, const QColor color); // 根据标尺位置设定颜色, 小于0或大于100为两端颜色
inline QColor valColor(const double val); // 根据真实值返回颜色
inline QColor markColor(const float mark); // 根据标尺值(0.0 - 100.0)返回颜色
inline QColor markColor(const double mark); // 根据标尺值(0.0 - 100.0)返回颜色
QMap<float, QColor> colorRuler(); // 返回标准(0.0 - 100.0)色标
QMap<double, QColor> colorRuler(); // 返回标准(0.0 - 100.0)色标
QVector<QColor> colorRuler(const int colorNumber); // 返回 等距色标单元 色标
@ -73,7 +73,7 @@ private:
const double val);
ZxInterval<double> m_ValRange;
QMap<float, QColor> m_mapColor;
QMap<double, QColor> m_mapColor;
int m_alpha;
double m_cvtRat;
@ -181,7 +181,7 @@ class ZxSeisColorWidget : public QWidget
{
Q_OBJECT
public:
explicit ZxSeisColorWidget(QWidget *parent = 0);
explicit ZxSeisColorWidget(QWidget* parent = 0);
void setAlpha(int a);
int alpha();
signals:
@ -259,7 +259,7 @@ class I_PROPERTY_EXPORT ZxColorGradientDialog : public QDialog
Q_OBJECT
public:
explicit ZxColorGradientDialog(QWidget *parent = 0);
explicit ZxColorGradientDialog(QWidget* parent = 0);
~ZxColorGradientDialog();
void setMaxAndMinAmpValue(double maxAmp,double minAmp);

@ -16,7 +16,7 @@ public:
explicit ZxColorPicker(QWidget* parent = 0);
/// 设置当前颜色
void setColor(const QColor & c);
void setColor(const QColor& c);
/// 获取当前颜色
QColor getColor() const;
@ -35,8 +35,8 @@ signals:
protected slots:
virtual void onColorChanged(const QColor & c);
virtual void onColorPreview(const QColor & c);
virtual void onColorChanged(const QColor& c);
virtual void onColorPreview(const QColor& c);
public:
@ -58,8 +58,8 @@ protected:
protected:
QColor m_previewColor; // 下拉框可见时以这个颜色为准
QColor m_currentColor; // 下拉框不可见时以这个颜色为准
QColor m_clrPrev; // 下拉框可见时以这个颜色为准
QColor m_clrCurrent; // 下拉框不可见时以这个颜色为准
bool m_bHasTransButton;
bool m_bHover;
bool m_bShowPopup;//是否显示下拉窗口。用来保证第一次点击时,显示下拉窗口,再次点击则隐藏,再次点击则又显示,...

@ -14,7 +14,7 @@ public:
explicit ZxColorPopup(QWidget* parent);
/// 点到界外或取消按钮时退回的颜色
void setFallbackColor(const QColor & c);
void setFallbackColor(const QColor& c);
/// 设置是否允许选择透明色, 即QColor(0,0,0,0)
void setHasTransButton(bool b);
@ -23,7 +23,7 @@ public:
bool hasTransButton() const;
/// 移动到合适的位置, 防止超出屏幕
void moveToProperPlace(const QPoint& ownerPosGlobal, const QSize & ownerSize);
void moveToProperPlace(const QPoint& ownerPosGlobal, const QSize& ownerSize);
/// 是否刚被隐藏.
bool isJustHide() const;
@ -46,21 +46,21 @@ protected:
virtual void enterEvent(QEvent *);
virtual void hideEvent(QHideEvent *);
void paintCell(QPainter & painter, int r, int c, bool hover);
void paintCell(QPainter & painter, int idx, bool hover);
void paintCell(QPainter& painter, int r, int c, bool hover);
void paintCell(QPainter& painter, int idx, bool hover);
void setHover(int index);
void updateCell(int index);
void saveCustomColor(const QColor & cr);
void saveCustomColor(const QColor& cr);
protected:
QColor m_currentColor;
QColor m_fallbackColor;
QColor m_clrCurrent;
QColor m_clrFallback;
bool m_bHasTransButton;
int m_nHover;
clock_t m_lastHideTime;
clock_t m_tLastHideTime;
QPixmap m_pixTrans;
};

@ -1,12 +1,14 @@
#pragma once
#include <QWidget>
#include "QLineEdit"
#include <QLineEdit>
#include "ZxDot.h"
#include "ZxDotStyleComboBox.h"
#include "ZxColorPicker.h"
#include "iProperty_global.h"
#include "ZxDrawHelper.h"
#include "ZxDot.h"
#include "iProperty_global.h"
class ZxDot;
@ -26,30 +28,30 @@ public:
signals:
// 四种信号
void signalDotStyleChanged(int);
void signalDotColorChanged(QColor);
void signalDotRadiusChanged(float);
void signalDotFillingChanged(bool);
void sigDotStyleChanged(int);
void sigDotColorChanged(QColor);
void sigDotRadiusChanged(double);
void sigDotFillingChanged(bool);
protected slots:
// Changed,Filling在内部处理
void onDotStyleChangedEx(int);
void onStyleChanged(int nStyle);
void onRadiusChanged();
void onDotColorChangedEx(const QColor&);
void onColorChanged(const QColor& clr);
protected:
virtual void paintEvent(QPaintEvent* );
virtual void mousePressEvent(QMouseEvent* );
virtual void mouseMoveEvent(QMouseEvent* );
virtual void resizeEvent(QResizeEvent* );
virtual void paintEvent(QPaintEvent*);
virtual void mousePressEvent(QMouseEvent*);
virtual void mouseMoveEvent(QMouseEvent*);
virtual void resizeEvent(QResizeEvent*);
protected:
// 控件的显示与隐藏
void showStyleWidget(const QRect &rcLine);
void showRadiusWidget(const QRect &rcWidth);
void showStyleWidget(const QRect& rcLine);
void showRadiusWidget(const QRect& rcWidth);
void hideStyleWidget();
void hideRadiusWidget();
@ -57,7 +59,7 @@ protected:
void layoutRects();
// 子控件Filling在内部处理
ZxDotStyleComboBox* getStyleComboBox();
ZxDotStyleComboBox* getStyleCbx();
QLineEdit* getRadiusEdit();
ZxColorPicker* getColorPicker();
@ -68,7 +70,7 @@ protected:
// 控件
ZxDotStyleComboBox* m_pCbxType;
QLineEdit* m_pTbxRadius;
ZxColorPicker* m_colorPicker;
ZxColorPicker* m_pClrPicker;
// 位置四个Rect: Style radius filling color
QVector<QRect> m_vecRects;

@ -10,13 +10,13 @@ class I_PROPERTY_EXPORT ZxDoubleSpinEdit
public:
ZxDoubleSpinEdit(QWidget *parent = 0);
ZxDoubleSpinEdit(QWidget* parent = 0);
protected:
virtual void focusInEvent(QFocusEvent *e);
virtual void focusInEvent(QFocusEvent* e);
virtual void focusOutEvent(QFocusEvent * e);
virtual void mousePressEvent(QMouseEvent * e);
virtual void mousePressEvent(QMouseEvent* e);
void setAutoSelectAll(bool bAuto);
bool isAutoSelectAll() const;

@ -10,32 +10,34 @@ class QMouseEvent;
class QResizeEvent;
class QEvent;
// 字体编辑组件
class I_PROPERTY_EXPORT ZxFontEdit : public QWidget
{
Q_OBJECT
public:
enum Part
// 枚举变量,标识字体各部分
enum FontSubPart
{
partFamily,
partSize,
partBoth,
partItalic,
_partMax
FSP_Family = 0,
FSP_Size,
FSP_Bold,
FSP_Italic,
FSP_Unknown
};
explicit ZxFontEdit(QWidget *parent = 0);
explicit ZxFontEdit(QWidget* parent = 0);
void setFont( const QFont& font );
void setFont(const QFont& font);
QFont getFont();
signals:
void signalFontFamilyChanged(QString);
void signalFontSizeChanged(QString);
void signalFontBoldChanged(bool);
void signalFontItalicChanged(bool);
void sigFontFamilyChanged(QString);
void sigFontSizeChanged(QString);
void sigFontBoldChanged(bool);
void sigFontItalicChanged(bool);
protected slots:
@ -53,25 +55,26 @@ protected:
protected:
QRect getPartRect(Part part) const;
int getPartIndex(const QPoint& pt);
void showFamilyWidget();
void hideFamilyWidget();
void showSizeWidget();
void hideSizeWidget();
// void emitValueChanged();
void showFamilyWx();
void hideFamilyWx();
void showSizeWx();
void hideSizeWx();
QRect getSubBounds(FontSubPart part) const;
int getSubFSPIndex(const QPoint& pt);
protected:
QFont m_font;
int m_x[_partMax];
int m_w[_partMax];
// 各部分X起始位置以及宽度
int m_arrFspXs[FSP_Unknown];
int m_arrFspWidths[FSP_Unknown];
QComboBox* m_comboFamily;
QComboBox* m_comboSize;
QComboBox* m_pCbxFontFamily;
QComboBox* m_pCbxFontSize;
int m_hoverPart;
FontSubPart m_oCurFsp;
};

@ -10,7 +10,6 @@ public:
class ZxColorItem
{
public:
ZxColorItem(int i = -1, QColor color = QColor())
@ -33,7 +32,6 @@ public:
int index;
QColor c;
};
enum ColorCount
@ -56,7 +54,7 @@ public:
ZxGradient();
QString toString();
void fromString( const QString& str );
void fromString(const QString& str);
public:
@ -67,7 +65,7 @@ public:
ColorCount m_eColorCount;
InterpolationMethod m_eMethod;
QVector<ZxColorItem> m_vecColorItems;
QVector<ZxColorItem> m_vecColorItems;
};

@ -14,10 +14,10 @@ class I_PROPERTY_EXPORT ZxGradientDialog : public QDialog
public:
explicit ZxGradientDialog(QWidget *parent = 0);
explicit ZxGradientDialog(QWidget* parent = 0);
~ZxGradientDialog();
void setColorGradient( const ZxGradient& colorGradient );
void setColorGradient(const ZxGradient& colorGradient);
ZxGradient getColorGradient();
public slots:

@ -10,13 +10,13 @@ class I_PROPERTY_EXPORT ZxIntSpinEdit
public:
ZxIntSpinEdit(QWidget *parent = 0);
ZxIntSpinEdit(QWidget* parent = 0);
protected:
virtual void focusInEvent(QFocusEvent *e);
virtual void focusInEvent(QFocusEvent* e);
virtual void focusOutEvent(QFocusEvent * e);
virtual void mousePressEvent(QMouseEvent * e);
virtual void mousePressEvent(QMouseEvent* e);
void setAutoSelectAll(bool bAuto);
bool isAutoSelectAll() const;

@ -35,7 +35,7 @@ public:
inline T atIndex(int, const T &step) const;
template <class X> inline int getIndex(const X&, const T &step) const;
template <class X> inline float getfIndex(const X&, const T &step) const;
template <class X> inline double getfIndex(const X&, const T &step) const;
template <class X> inline int nearestIndex(const X &x, const T &step) const;
template <class X> inline void limitTo(const ZxInterval<X> &i)
@ -45,7 +45,7 @@ public:
template <class X> inline bool overlaps(const ZxInterval<X>&, bool allrev = true) const;
template <class X> inline bool includes(const X&, bool allowrev = true) const;
template <class X> inline float pos(X val, bool limit = true, bool allowrev = true) const;
template <class X> inline double pos(X val, bool limit = true, bool allowrev = true) const;
/*!< returns a value between 0 and 1 if val is
between start and stop. */
inline void include(const T&, bool allowrev = true);
@ -69,7 +69,7 @@ inline int ZxInterval<T>::nearestIndex(const X &x, const T &step) const
{
int nr = getIndex(x, step);
const T atindex = atIndex(nr, step);
const float reldiff = (float)(x-atindex)/step;
const double reldiff = (double)(x-atindex)/step;
if (reldiff>=0.5) return nr+1;
else if (reldiff<=-0.5) return nr-1;
@ -158,9 +158,9 @@ inline bool ZxInterval<T>::includes(const X &t, bool allowrev) const
}
template <class T> template <class X>
inline float ZxInterval<T>::pos(X val, bool limit, bool allowrev) const
inline double ZxInterval<T>::pos(X val, bool limit, bool allowrev) const
{
float res = allowrev && isRev()
double res = allowrev && isRev()
? (val-stop)/(start-stop)
: (val-start)/(stop-start);
if (limit)
@ -200,8 +200,8 @@ inline int ZxInterval<T>::getIndex(const X &t, const T &step) const
{ return (int)((t - start) / step); }
template <class T> template <class X>
inline float ZxInterval<T>::getfIndex(const X &t, const T &step) const
{ return (((float)t - start) / step); }
inline double ZxInterval<T>::getfIndex(const X &t, const T &step) const
{ return (((double)t - start) / step); }
template <class T> template <class X>
inline X ZxInterval<T>::limitValue(const X &t) const

@ -10,13 +10,13 @@ class I_PROPERTY_EXPORT ZxLineEdit
public:
ZxLineEdit(QWidget *parent = 0);
ZxLineEdit(QWidget* parent = 0);
protected:
virtual void focusInEvent(QFocusEvent *e);
virtual void focusInEvent(QFocusEvent* e);
virtual void focusOutEvent(QFocusEvent * e);
virtual void mousePressEvent(QMouseEvent * e);
virtual void mousePressEvent(QMouseEvent* e);
void setAutoSelectAll(bool bAuto);
bool isAutoSelectAll() const;

@ -7,9 +7,9 @@ class I_PROPERTY_EXPORT ZxLineStyleComboBox : public QComboBox
{
public:
ZxLineStyleComboBox( QWidget* parent = 0 );
ZxLineStyleComboBox(QWidget* parent = 0);
void paintEvent( QPaintEvent* event );
void paintEvent(QPaintEvent* event);
};

@ -16,11 +16,18 @@ class I_PROPERTY_EXPORT ZxPenEdit : public QWidget
{
Q_OBJECT
// 线宽的单位
enum LineWidthUnit
{
LWU_mm = 0, //毫米
LWU_mm_div_10 //0.1毫米
};
public:
explicit ZxPenEdit(QWidget *parent = 0);
ZxPenEdit(QWidget* parent = 0);
void setPen( const QPen& pen );
void setPen(const QPen& pen);
QPen getPen();
signals:
@ -30,9 +37,10 @@ signals:
void signalPenWidthChanged(qreal);
protected slots:
void onStyleChanged(int);
void onRadiusChanged();
void onColorChanged(const QColor&);
virtual void onStyleChanged(int nStyle);
virtual void onRadiusChanged();
virtual void onColorChanged(const QColor& clr);
protected:
@ -42,34 +50,27 @@ protected:
protected:
void showLineStyleWidget(const QRect &rcLine);
void showLineWidthWidget(const QRect &rcWidth);
void showLineStyleWidget(const QRect& rcLine);
void showLineWidthWidget(const QRect& rcWidth);
void hideLineStyleWidget();
void hideLineWidthWidget();
void getConponentRect( QRect& rcLine, QRect& rcWidth, QRect& rcColor );
void splitSubBounds(QRect& rcLine, QRect& rcWidth, QRect& rcColor);
ZxLineStyleComboBox* getLineStyleComboBox();
QLineEdit* getLineWidthEdit();
ZxLineStyleComboBox* getLineStyleCbx();
QLineEdit* getLineWidthTbx();
ZxColorPicker* getColorPicker();
//线宽的单位
enum LineWidthUnit
{
Millimeter, //毫米
Millimeter_div_10 //0.1毫米
};
protected:
LineWidthUnit m_lineWidthUnit;
int m_widthWidth;//线宽编辑控件的宽度
int m_colorWidth;//颜色部分的宽度
LineWidthUnit m_oLWU;
int m_nPenWidth;//线宽编辑控件的宽度
int m_nClrWidth;//颜色部分的宽度
QPen m_pen;
ZxLineStyleComboBox* m_lineStyle;
QLineEdit* m_lineWidth;
ZxColorPicker* m_colorPicker;
ZxLineStyleComboBox* m_pCbxLineStyle;
QLineEdit* m_pTbxLineWidth;
ZxColorPicker* m_pClrPicker;
};

@ -16,9 +16,9 @@ public:
protected slots:
void slotSymbolSelectionChanged(QString);
void slotOpenSymbolSelectionDialog();
void slotSymbolNameChanged();
void slotMarkerSelChanged(QString);
void slotOpenMarkerDialog();
void slotMarkerNameChanged();
public:
@ -33,31 +33,30 @@ protected:
void showPopup();
void hidePopup();
void setCategory( const QString& category );
void setInputCategory( const QString& category );
void setSelectedSymbolCode( const QString& code );
void setCategory(const QString& category);
void setInputCategory(const QString& category);
void setSelectedSymbolCode(const QString& code);
QLineEdit* getSymbolNameEdit();
void hideSynbolNameWidget();
void showSynbolNameWidget( const QRect& rcName );
void getConponentRect( QRect& rcSymbol, QRect& rcName, QRect& rcButton );
void showSynbolNameWidget(const QRect& rcName);
void splitSubBounds(QRect& rcSymbol, QRect& rcName, QRect& rcButton);
bool isPopupVisible() const;
int getNameWidth();
QString getCodeByName(const QString &name);
QString getCodeByName(const QString& name);
protected:
ZxSymbolPopup * m_pPopup;
ZxSymbolPopup* m_pPopup;
bool m_bHover;
bool m_bShowPopup;//是否显示下拉窗口。用来保证第一次点击时,显示下拉窗口,再次点击则隐藏,再次点击则又显示,...
QString m_categoryConfigged; ///<配置文件中配置的类别
QString m_categoryInput; ///<从图形对象传过来的符号的类别
QString m_symbolCode; ///< 符号的代码
QString m_sCategoryConfigged; ///<配置文件中配置的类别
QString m_sCategoryInput; ///<从图形对象传过来的符号的类别
QString m_sCode; ///< 符号的代码
QLineEdit* m_lineEditSynbolName;
int m_symbolNameWidth;
QLineEdit* m_pTbxSynbolName;
QPushButton m_button;
int m_buttonWidth;
int m_nBtnWidth;
};

@ -36,27 +36,27 @@ public:
ZxSymbolPaint();
static int ZxSymbolCount();
static void draw(QPainter* painter, const QPointF &midpos, const int symbolType, const float size , const QColor &color);
static void draw(QPainter* painter, const QPointF &midpos, const int symbolType, const double size , const QColor &color);
private:
static void drawCross1(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCross2(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCross3(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCross4(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCross1(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawCross2(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawCross3(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawCross4(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawCircle1(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCircle2(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCircle3(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawCircle1(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawCircle2(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawCircle3(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawTriangle1(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawTriangle2(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawTriangle3(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawTriangle4(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawTriangle1(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawTriangle2(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawTriangle3(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawTriangle4(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawRect1(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawRect2(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawRect3(QPainter* painter, const QPointF &midpos, const float size, const QColor &color);
static void drawRect1(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawRect2(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
static void drawRect3(QPainter* painter, const QPointF &midpos, const double size, const QColor &color);
};

@ -16,11 +16,11 @@ class ZxSymbolPullList : public QFrame
public:
explicit ZxSymbolPullList(QWidget *parent = 0);
explicit ZxSymbolPullList(QWidget* parent = 0);
~ZxSymbolPullList();
int symbolNo();
void moveToProperPlace(const QPoint& ownerPosGlobal, const QSize & ownerSize);
void moveToProperPlace(const QPoint& ownerPosGlobal, const QSize& ownerSize);
signals:
@ -46,8 +46,8 @@ private:
Ui::ZxSymbolPullList *ui;
int curSymbolIndex;
int startSerialNumber;
int m_nCurSymbolIndex;
int m_nStartSerialNumber;
};

@ -8,7 +8,7 @@ class ZxXpfNode;
class QDomElement;
class ZxPtyFileManager;
/// 属性配置文件
// 属性配置文件
class I_PROPERTY_EXPORT ZxPtyAttributeFile
{
ZxPtyAttributeFile(ZxPtyFileManager* pManager);
@ -36,26 +36,6 @@ private:
// 正式应用(新版)
bool load_new(const QString& sPath, const QString& sName);
bool parsePtyNodes(QDomElement& e, QString sPrev);
#ifdef _SCAN_OLD_CODE_
bool load(const QString& sPath, const QString& sName);
// 排序
QStringList getAllItemConfigKeys(bool bAlphabetical = false);
QStringList getAllItemConfigKeysAlphabetical();
QStringList getAllItemConfigKeysDisplayOrder();
// 废弃
void loadOrder();
void saveOrder();
void mergeOrder(QStringList & dst, const QStringList & src);
ZxPtyAttributeFile* getBase() const;
void setItemOrder(const QString& key, int order);
void clearOrder();
void orderSyncWithBase(bool includeDerived = false);
#endif
bool save();
private:

@ -28,9 +28,9 @@ public:
private:
int m_nSessionId;
QList<ZX_PROPERTY_CHANGED_CALLBACK_EX> m_callbacks;
QString m_sKey;
QVariant m_varNew;
QList<ZX_PROPERTY_CHANGED_CALLBACK_EX> m_callbacks;
};

@ -13,7 +13,7 @@
class QTextEdit;
// 属性载体
// 属性载体Dock)
class I_PROPERTY_EXPORT ZxPtyDock : public QDockWidget
, virtual public IxPtyPano
, virtual public IxDynObj
@ -35,8 +35,7 @@ public:
// 添加项
virtual IxPtyItem* add(ZX_PROPERTY_CHANGED_CALLBACK callback, \
const QString& key, \
const QVariant& var, \
IxPtyItem::ItemType type = IxPtyItem::typeDefault);
const QVariant& var);
// 入口
virtual void beginSession(const QString& configName, \
@ -58,16 +57,20 @@ public:
signals:
// 加载/存为模版时触发
void sigItemPropertyTempl(IxPtySource*, bool b, bool bSelf);
protected slots:
void onHelpMessage(const QString& help);
void changeEvent(QEvent* e);
// 模版存/取
void slotSaveTempl_Self();
void slotSaveTempl_All();
// Tips显示
void slotShowItemTips(const QString& s);
private:
void initUI();
@ -89,7 +92,7 @@ class I_PROPERTY_EXPORT QWidgetTemp : public QDialog
Q_OBJECT
public:
explicit QWidgetTemp(bool bNovelQss, QWidget *parent = 0)
explicit QWidgetTemp(bool bNovelQss, QWidget* parent = 0)
: QDialog(parent)
{
//
@ -120,7 +123,9 @@ protected:
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
protected:
//bool m_bNovelQss;
};

@ -1,6 +1,7 @@
#include <QList>
#include <QObject>
#include <QMap>
#include "iProperty_global.h"
class ZxPathIndexer;
@ -34,7 +35,7 @@ public:
signals:
void preReload();
void reloaded();
void sigConfigReloaded();
private:

@ -11,11 +11,11 @@ class ZxPtyPano;
class ZxPtyAttributeFile;
class IxPtyItemEditor;
/// @internal
/// 属性表条目.
// 属性项
class I_PROPERTY_EXPORT ZxPtyItem
: virtual public IxPtyItem
{
public:
ZxPtyItem(ZxPtyPano* pSheet);
@ -23,103 +23,125 @@ public:
public:
// 创建具体的组件
IxPtyItemEditor* tryCreateEditor(const QString& sPtyTag);
// 配置设定
void setConfig(ZxXpfNode* p, bool isInit);
void loadInitConfig();
ZxXpfNode* getItemNodeBy(ZxXpfNode* config, \
QString sItemTag, \
bool bCaseInsensitive = true) const;
QString getItemAttributeBy(ZxXpfNode* config, \
QString sItemTag, \
bool bCaseInsensitive = true) const;
// 对应文件
ZxPtyAttributeFile* getAttributeFile() const;
// 载体
virtual IxPtyPano* getPtyPano() const;
// 父级属性项
virtual IxPtyItem* getParent() const;
virtual bool isGroup() const;
// 父级属性项:名称
QString getParentConfigName(ZxXpfNode* config) const;
QString macrosExpanded(const QString& s) const; //宏模式处理
virtual ItemType getItemType() const;
virtual void setItemType(ItemType _type);
// 是否分组
virtual bool isGroup() const;
// 取值范围
virtual void setLimit(int nMin, int nMax);
virtual void setLimit(double fMin, double fMax);
// 对于下拉类型的设定
virtual void setOptions(const QStringList& listName, const QList<QVariant>& listValue);
virtual void setOptions(const QStringList& listName, const QStringList& listValue);
virtual void setOptions(const QStringList& listName, const QList<int>& listValue);
virtual QVariant getValue() const;
virtual void setValue(const QVariant& v, IxInterface* pSetBy = 0);
virtual bool isVisible() const;
virtual void setVisible(bool bVisible);
virtual bool isReadOnly() const;
virtual void setReadOnly(bool bReadOnly);
virtual void setExpand(bool bExpand);
virtual void activate();
// 当前标识
QString getLabel();
virtual void setHeight(int height);
virtual int getHeight() const;
// 当前值
virtual QVariant getValue() const;
virtual void setValue(const QVariant& v, IxInterface* pSetBy = NULL);
void onValueChanged(const QVariant& v);
int getRowBottom() const;
int getRowHeight() const;
// 键值
const QString& getKey() const;
QString getFullKey() const;
QString getParam(int index) const;
// 排序
static bool displayOrder(const ZxPtyItem* a, const ZxPtyItem* b);
static bool alphabetical(const ZxPtyItem* a, const ZxPtyItem* b);
//void applyConfig(ZxXpfNode* p);
IxPtyItemEditor* tryCreateEditor(const QString& widgetTag);
void setConfig(ZxXpfNode* p, bool isInit);
void loadInitConfig();
ZxPtyAttributeFile* getAttributeFile() const;
QWidget* getOwnerWidget();
QWidget* getItemWidget();
QString getLabel();
void onValueChanged(const QVariant& v);
// 系列属性
// 可见
virtual bool isVisible() const;
virtual void setVisible(bool bVisible);
int getVisibleRows();
bool isHideByCollapse();
bool isVirtualVisible();
int getParamsCount() const;
QString getParam(int index) const;
// 只读
virtual bool isReadOnly() const;
virtual void setReadOnly(bool bReadOnly);
const QString& getKey() const;
QString getFullKey() const;
// 展开
virtual void setExpand(bool bExpand);
QString getParentConfigName(ZxXpfNode* config) const;
// 激活条目
virtual void activate();
QString macrosExpanded(const QString& s) const;
// 高度
virtual void setHeight(int height);
virtual int getHeight() const;
// 该行 底及高度
int getRowBottom() const;
int getRowHeight() const;
// 双击响应
void onDoubleCliked(int n);
// 窗体
QWidget* getOwnerWidget();
QWidget* getItemWidget();
public:
int realIndex; //实际的行号
int virtualIndex; //显示在第几行, 有条目展开/折叠时, 这个值可能会变
int order; //显示顺序
int m_nIndexReal; //实际的行号
int m_nIndexVirtual; //显示在第几行, 有条目展开/折叠时, 这个值可能会变
int m_nOrder; //显示顺序
int offset; //当前显示位置, Y坐标
int cellHeight; //当前条目的高度
int indent; //缩进
int m_nOffsetY; //当前显示位置, Y坐标
int m_nCurCellHeight; //当前条目的高度
int m_nItemIndent; //缩进
bool expanded;
bool hidden; //配置里配的, 是否隐藏
bool active;
bool readonly;
bool m_bExpanded; //是否展开对于group而言
bool m_bHidden; //是否隐藏
bool m_bActive; //是否激活
bool m_bReadonly; //是否只读
bool m_bHasMacros; //宏定义模式
IxPtyItemEditor* editor; //用来编辑/显示当前条目的控件
ZxPtyPano* sheet; //所属的属性表
//ZxXpfNode* config; //当前条目的配置, 从配置文件里获取. 可以为空
QString label; //显示的标签
bool hasMacros;
QStringList params; //key is at front, ie params[0]
QString help;
QVariant value; //当前值
QString m_sItemLabel; //显示的标签
QString m_sItemTips;
QVariant m_oItemValue; //当前值
ZxPtyPano* sheet; //所属的属性表
IxPtyItemEditor* m_pPtyItemEditor; //所属的属性控件
QStringList m_listParams; //key is at front, ie m_listParams[0]
QList<ZX_PROPERTY_CHANGED_CALLBACK_EX> handlers; //回调, 往对象回传新值
ZxPtyItem* parent; //父条目
QVector<ZxPtyItem*> children; //子条目
// 其它常量
int m_nCELL_HEIGHT;
int m_nCELL_SPACING;
int m_nCellSpacing;
};

@ -16,6 +16,7 @@ class ZxPtyFileManager;
class ZxPtyAttributeFile;
class ZxXpfNode;
// 绘图属性载体
class I_PROPERTY_EXPORT ZxPtyPano
: public QAbstractScrollArea
, virtual public IxPtyPano
@ -29,37 +30,49 @@ public:
explicit ZxPtyPano();
~ZxPtyPano();
virtual void paintEvent(QPaintEvent *);
virtual void mousePressEvent(QMouseEvent *);
virtual void mouseDoubleClickEvent(QMouseEvent* e);
virtual void mouseReleaseEvent(QMouseEvent *);
virtual void mouseMoveEvent(QMouseEvent *);
virtual void resizeEvent(QResizeEvent *);
virtual IxPtyItem* addGroup(const QString& key, bool expand = true, bool visible = true);
virtual IxPtyItem* add(ZX_PROPERTY_CHANGED_CALLBACK callback, const QString& key, const QVariant& var, IxPtyItem::ItemType type = IxPtyItem::typeDefault);
// 入口
virtual void beginSession(const QString& configName, IxInterface* pSessionOwner);
virtual void endSession();
virtual void endSession();
// 具体对象
virtual void beginObject(IxPtySource* p);
virtual void endObject();
virtual void endObject();
// 组及项添加
virtual IxPtyItem* addGroup(const QString& key, bool expand = true, bool visible = true);
virtual IxPtyItem* add(ZX_PROPERTY_CHANGED_CALLBACK callback, \
const QString& key, \
const QVariant& var);
// 检索
virtual IxPtyItem* findPropertyItem(const QString& sKey);
// 清空
virtual void clear(IxInterface* pSessionOwner);
// 获取当前配置文件. 这个文件是根据上层应用模块设置的配置名来加载的, 每次填表都会更新.
ZxPtyAttributeFile* getAttributeFile();
// 对象体
IxPtySource* getCurObject() { return m_pObject; }
signals:
void helpMessage(const QString& help);
// 显示某项的tips
void sigShowItemTips(const QString& help);
protected slots:
void onConfigReloaded();
void slotConfigReloaded();
public:
virtual void paintEvent(QPaintEvent *);
virtual void mousePressEvent(QMouseEvent *);
virtual void mouseDoubleClickEvent(QMouseEvent* e);
virtual void mouseReleaseEvent(QMouseEvent *);
virtual void mouseMoveEvent(QMouseEvent *);
virtual void resizeEvent(QResizeEvent *);
private:
@ -67,6 +80,7 @@ private:
void paintHeader(QPainter& painter);
void paintGroups(QPainter& painter);
void paintItems(QPainter& painter);
void onActiveItemChanged(ZxPtyItem* item);
enum HitTestPart
@ -81,103 +95,112 @@ private:
class HitTestResult
{
public:
int row;
HitTestPart part;
bool isValid() const;
int col();
};
private:
void updateLayout();
void doLayout();
ZxPtyItem* getOrCreate(const QString& key, const QVariant& initVar, bool* bJustCreated);
// 创建
ZxPtyItem* getOrCreate(const QString& key, \
const QVariant& initVar, \
bool* bJustCreated);
IxPtyItemEditor* createEditor(const QString& name);
void releaseEditor(IxPtyItemEditor* p);
// 配置关联
ZxXpfNode* getItemConfig(const QString& key);
// ZxXpfNode* getParentItemConfig(ZxXpfNode* pItemConfig);
int getAndIncObjectSn();
// 布局相关
void updateLayout();
void doLayout();
void saveXSplit();
void loadXSplit();
void normalizeXSplit();
QRect getLeftRect(int nVirtualRow);
QRect getRightRect(int nVirtualRow);
int indentWidth() const;
int getAndIncObjectSn();
int right() const;
QRect getLeftRect(int virtualRow);
QRect getRightRect(int virtualRow);
int getVerticalScrollPos() const;
void scrollContentsBy(int dx, int dy);
// 鼠标交互
HitTestResult hitTest(int x, int y);
// 项展开
void expand(ZxPtyItem* p);
void collapse(ZxPtyItem* p);
// 项激活
void activateItem(ZxPtyItem* p);
void clearItems();
int getVerticalScrollPos() const;
void scrollContentsBy(int dx, int dy);
int right() const;
void updateItem(ZxPtyItem* item); // 刷新重绘
void saveXSplit();
void loadXSplit();
void normalizeXSplit();
IxPtyItemEditor* createEditor(const QString& name);
void releaseEditor(IxPtyItemEditor* p);
void clearItems();
private:
bool m_bNeedLayout;
QVector<ZxPtyItem*> m_vecRealRows;
QVector<ZxPtyItem*> m_vecVirtualRows;
QHash<QString, ZxPtyItem*> m_map;
// 关联对象及载体
QHash<QString, ZxPtyItem*> m_hashPtyItems;
ZxPtyFileManager* m_pConfigManager;
mutable ZxPtyAttributeFile* m_pAttribueFile;
mutable QString m_sConfig;
int m_nSessionId;
IxInterface* m_pSessionOwner;
IxPtySource* m_pObject;
int m_nObjectCount;
IxPtyItem* m_pCurrentItem;
int m_nObjectCount;
int m_nSessionId;
IxInterface* m_pSessionOwner;
QHash<QString, int> m_objectSn;
QHash<QString, int> m_hashObjSns;
bool m_bInitializingSession;
// 布局及鼠标交互相关
bool m_bHitSplit;
int m_xSplit;
bool m_bNeedLayout;
QVector<ZxPtyItem*> m_vecRealRows;
QVector<ZxPtyItem*> m_vecVirtualRows;
// 项展开折叠图标
QPixmap m_pixExpand;
QPixmap m_pixCollapse;
friend class ZxPtyItem;
QColor m_groupBackColor[3];
QColor m_groupFrontColor[3];
QColor m_frameBackColor;
QPixmap m_pixCollapse;
// 颜色
QColor m_vecBackColors[3];
QColor m_clrFrameBack;
// 其它
double m_dNextItemOrder;
bool m_bClearEntered;
QList<ZxPtyItem*> m_listItemsToBeDeleted;
// static QSet<ZxPtyPano*> _setAllPtyPanos;
QList<ZxPtyItem*> itemsToBeDeleted;
bool m_bHitSplit;
// 控件池, 避免反复创建/删除, 否则Debug版会比较卡
// 控件池
typedef QVector<IxPtyItemEditor*> ItemEditorVector;
QHash<QString, ItemEditorVector> m_editorPool;
int m_nROW_HEIGHT;
int m_nINDENT_WIDTH;
int m_nINDENT_ICON_WIDTH;
int m_nINDENT_ICON_MARGIN_H;
int m_nINDENT_ICON_MARGIN_V;
int m_nLEFT_PADDING;
int m_nRIGHT_PADDING;
int m_nBOTTOM_PADDING;
int m_nCELL_PADDING_V;
int m_nCELL_PADDING_H;
int m_nCELL_SPACING;
QHash<QString, ItemEditorVector> m_hashEditorPools;
// 内部布局涉及的遍历
int m_nRowHeight;
int m_nIndentWidth;
int m_nIconWidth;
int m_nIconMarginH;
int m_nIconMarginV;
int m_nPaddingLeft;
int m_nPaddingRight;
int m_nPaddingBottom;
int m_nCellPaddingV;
int m_nCellPaddingH;
int m_nCellSpacing;
friend class ZxPtyFileManager;
friend class ZxPtyItem;
};

@ -26,8 +26,8 @@ private:
void initUnitCbx();
float getValue(); //获得当前单位制下的数值
void setValue(float value); //修改当前单位制下的数值
double getValue(); //获得当前单位制下的数值
void setValue(double value); //修改当前单位制下的数值
bool setCurrentUnit(QString sUnit); //修改当前单位
bool setCurrentUnit(int nUnitIndex); //修改当前单位
@ -43,6 +43,6 @@ private:
QComboBox* m_pCbxUnits;
iUnitGroup* m_pUnitGroup;
float m_fRawValue; //记录输入的数值,用于转换
double m_fRawValue; //记录输入的数值,用于转换
QString m_sRawUnit;
};

@ -21,10 +21,15 @@ public:
void copyFrom(iUnitGroup* p);
// 数据转换
bool convert(QString sUnitSrc, float fValueSrc,
QString sUnitDest, float& fValueDest, int &nDigit);
bool convert(QString sUnitSrc, VecFloat vecValueSrc,
QString sUnitDest, VecFloat& vecValueDest, int &nDigit);
// bool convert(QString sUnitSrc, double fValueSrc,
// QString sUnitDest, double& fValueDest, int &nDigit);
// bool convert(QString sUnitSrc, VecDouble vecValueSrc,
// QString sUnitDest, VecDouble& vecValueDest, int &nDigit);
bool convert(QString sUnitSrc, double fValueSrc,
QString sUnitDest, double& fValueDest, int &nDigit);
bool convert(QString sUnitSrc, VecDouble vecValueSrc,
QString sUnitDest, VecDouble& vecValueDest, int &nDigit);
// 查找是否还有某个单位
int indexOf(QString sUnit);

@ -29,8 +29,8 @@ public:
QString m_sIcon; //图标
QString m_sTips; //Tips
float m_fK; //系数
float m_fB;
double m_fK; //系数
double m_fB;
// 该单位显示的小数位数
int m_nDigit;

@ -20,8 +20,8 @@ public:
static bool convertBa2Vec(VecVariant& vec, QByteArray& ba);
static bool convertVec2Ba(VecDouble& vec, QByteArray& ba);
static bool convertBa2Vec(VecDouble& vec, QByteArray& ba);
static bool convertVec2Ba(VecFloat& vec, QByteArray& ba);
static bool convertBa2Vec(VecFloat& vec, QByteArray& ba);
// static bool convertVec2Ba(VecDouble& vec, QByteArray& ba);
// static bool convertBa2Vec(VecDouble& vec, QByteArray& ba);
/// @brief VVec与QByteArray的转换
static bool convertVVec2Ba(VVecVariant& vvec, \
@ -42,18 +42,32 @@ public:
// /// @brief VecX、VecY与QByteArray的转换
// static bool convertVecXY2Ba(VecDouble& vecX, \
// VecDouble& vecY, \
// QByteArray& ba);
// /// @brief QByteArray与VecX、VecY的转换
// static bool convertBa2VecXY(VecDouble& vecX, \
// VecDouble& vecY, \
// QByteArray& ba);
/// @brief VecX、VecY与QByteArray的转换
static bool convertVecXY2Ba(VecFloat& vecX, \
VecFloat& vecY, \
static bool convertVecXY2Ba(VecDouble& vecX, \
VecDouble& vecY, \
QByteArray& ba);
/// @brief QByteArray与VecX、VecY的转换
static bool convertBa2VecXY(VecFloat& vecX, \
VecFloat& vecY, \
static bool convertBa2VecXY(VecDouble& vecX, \
VecDouble& vecY, \
QByteArray& ba);
/// @brief vvecXY 类似 vecXY << vecX << vecY
static bool convertBa2VVecXY(VVecFloat& vvecXY, \
// /// @brief vvecXY 类似 vecXY << vecX << vecY
// static bool convertBa2VVecXY(VVecDouble& vvecXY, \
// QByteArray& ba);
/// @brief vvecXY 类似 vecXY << vecX << vecY
static bool convertBa2VVecXY(VVecDouble& vvecXY, \
QByteArray& ba);
/// @brief 把多个ba一起转换为VVec主要用于多相情况
@ -62,7 +76,7 @@ public:
/// @param bVertical如果为true则 vvec[0]为时间vvec[1]油vvec[2]为气vvec[3]为水
/// 如果为false则vvec[0]为 时间/油/气/水,其它均类似
static bool convertVecBa2VVecF(QVector<QByteArray>& vecBAs, \
VVecFloat& vvec, bool bVertical = true);
VVecDouble& vvec, bool bVertical = true);
/// @brief 把多个ba一起转换为VVec主要用于多相情况
/// @param vecBAs,流量数据体的ba三个油气水每个都内含x/y
@ -90,9 +104,9 @@ public:
/// TODO 20231231 Old
// 已经废弃
static bool convertBa2VecData(VecFloat& vecData, QByteArray& ba);
static bool convertBa2VecData(VecDouble& vecData, QByteArray& ba);
// 已经废弃
static bool convertVecData2Ba(VecFloat& vecData, QByteArray& ba);
static bool convertVecData2Ba(VecDouble& vecData, QByteArray& ba);
// ByteArray Image
static bool imgToBa(QImage& img, QByteArray& ba);
@ -103,6 +117,6 @@ public:
static bool baToMap(QByteArray& ba, QMap<QString, QVariant>& map);
static bool mapToBa(QByteArray& ba, QMap<QString, double>& map);
static bool baToMap(QByteArray& ba, QMap<QString, double>& map);
static bool mapToBa(QByteArray& ba, QMap<QString, float>& map);
static bool baToMap(QByteArray& ba, QMap<QString, float>& map);
static bool mapToBa(QByteArray& ba, QMap<QString, VecDouble>& map);
static bool baToMap(QByteArray& ba, QMap<QString, VecDouble>& map);
};

@ -115,12 +115,12 @@ public:
/// @param bExpand 是否流量自动扩展一个tick
/// @param pVecScales结果存储位置
/// @note 1通常 fMin < fMax; 对于fMin > fMax 的情况也做了相应处理(返回结果也是倒着)
static bool calAxisScales(float& fMin,
float& fMax,
static bool calAxisScales(double& fMin,
double& fMax,
bool bAxisX,
bool bLinear = true,
bool bExpand = false,
QVector<float>* pVecScales = NULL);
QVector<double>* pVecScales = NULL);
/// @brief 随机颜色提取
static QColor getCustomColor(int nIndex);
@ -158,7 +158,7 @@ public:
// 对于Cross改为自定义因为系统的太大不美观
static void customerCrossCusor(QCursor &o);
// 获取字符串表示的float的小数位数
// 获取字符串表示的double的小数位数
// ”1.230"返回3”100“返回0
static int getStrDigit(QString s);
@ -168,7 +168,7 @@ public:
/// @param bAutoAdjust:是否自动调整
/// @param bAutoTrimmed:自动截取末尾0
/// @note 如果bAutoAdjust=1f=0.0001,nDigit=3则返回“0.0001”
static QString getValidStr(float f, \
static QString getValidStr(double f, \
int nDigit, \
bool bAutoTrimmed = true, \
bool bAutoAdjust = true);

@ -23,7 +23,7 @@ public:
ZxDot();
ZxDot(ZxDotType o, \
QColor clr = QColor(0, 0, 0), \
float r = 1.f, \
double r = 1.f, \
bool bFill = false);
~ZxDot();
@ -63,8 +63,8 @@ public:
QColor color() const;
void setColor(const QColor &clr);
float radius() const;
void setRadius(const float& f);
double radius() const;
void setRadius(const double& f);
bool isFilling() const;
void setFilling(const bool& b);
@ -73,7 +73,7 @@ protected:
ZxDotType m_oType; //类型
QColor m_clr; //颜色
float m_fRadius; //半径
double m_fRadius; //半径
bool m_bFilling; //是否填充
};
@ -115,7 +115,7 @@ inline QDataStream& operator>> (QDataStream& in, ZxDot& o)
in >> clr;
o.setColor(clr);
float r = 0.f;
double r = 0.f;
in >> r;
o.setRadius(r);

@ -20,57 +20,57 @@ public:
static void drawFocus(QPainter* painter,QRectF rect);
/// 绘制点
static void drawPoint(QPainter* painter,QPointF point[],int cnt,int nDotStyle,float fRadius,bool isFill,QColor clr);
static void drawPoint(QPainter* painter,QPointF point[],int cnt,int nDotStyle,double fRadius,bool isFill,QColor clr);
static void drawPoint(QPainter* painter, QPointF point[], int cnt, ZxDot o);
/// 绘制点
static void drawPoint(QPainter* painter,QPointF point,int nDotStyle,float fRadius,bool isFill,QColor clr);
static void drawPoint(QPainter* painter,QPointF point,int nDotStyle,double fRadius,bool isFill,QColor clr);
static void drawPoint(QPainter* painter, QPointF point, ZxDot o);
/// 绘制圆
static void drawCircle(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawCircle(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制正方形
static void drawSquare(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawSquare(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制上三角
static void drawUpTriangle(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawUpTriangle(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制下三角
static void drawDownTriangle(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawDownTriangle(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制左三角
static void drawLeftTriangle(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawLeftTriangle(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制右三角
static void drawRightTriangle(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawRightTriangle(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制菱形
static void drawDiamond(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawDiamond(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制叉
static void drawCross(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawCross(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制十字架
static void drawPlus(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawPlus(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制六角星
static void drawStar(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawStar(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制梯形塔台
static void drawRig(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr);
static void drawRig(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr);
/// 绘制带线的三角形
static void drawTriangleWithLine(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr,float fAngle = 0);
static void drawTriangleWithLine(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr,double fAngle = 0);
/// 绘制带线的圆
static void drawCricleWithLine(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr,float fAngle = 0);
static void drawCricleWithLine(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr,double fAngle = 0);
/// 绘制箭头
static void drawArrow(QPainter* painter,QPointF point,float fRadius,bool isFill,QColor clr,float fAngle = 0);
static void drawArrow(QPainter* painter,QPointF point,double fRadius,bool isFill,QColor clr,double fAngle = 0);
/// 求两条线段的夹角
static float straightAngle(QPointF ptLine1Start,QPointF ptLine1End,QPointF ptLine2Start,QPointF ptLine2End);
static double straightAngle(QPointF ptLine1Start,QPointF ptLine1End,QPointF ptLine2Start,QPointF ptLine2End);
/// 绘制文本
static void drawText(QPainter* painter, const QRectF& rt, \
@ -81,9 +81,9 @@ public:
///////////////////////////////////////////////////
// TODO 如下几个函数可以考虑放入zxAlgMath类库之中目前为了减少类库依赖暂时放在此处
/// 点是否在附近
static bool isPointNearPoint(QPointF point1,QPointF point2,float nMinDist=1.f);
static bool isPointNearPoint(QPointF point1,QPointF point2,double nMinDist=1.f);
/// 点是否在直线附近
static bool isPointNearLine(QPointF pt1,QPointF pt2,QPointF pt3,float nMinDist=1.f);
static bool isPointNearLine(QPointF pt1,QPointF pt2,QPointF pt3,double nMinDist=1.f);
static double pointToLineDis(QPointF pt1,QPointF pt2,QPointF pt3);
///////////////////////////////////////////////////

@ -23,7 +23,7 @@ public:
// 旋转(倾斜度校正)
// 顺时针旋转的角度,不需弧度转换, fAngle:0-360
static bool rotateImg(QImage& oImg, \
float fAngle, \
double fAngle, \
bool bAdjustBkClr = true);
// 更改因为旋转而导致的背景颜色(黑色)

@ -19,11 +19,11 @@ public:
/// @param bExpand 是否流量自动扩展一个tick
/// @param pVecScales结果存储位置
/// @note 1通常 fMin < fMax; 对于fMin > fMax 的情况也做了相应处理(返回结果也是倒着)
bool calAxisScales(float& fMin, float& fMax, \
bool calAxisScales(double& fMin, double& fMax, \
bool bAxisX, \
bool bLinear = true, \
bool bExpand = false, \
QVector<float>* pVecScales = NULL);
QVector<double>* pVecScales = NULL);
private:
@ -32,7 +32,7 @@ private:
bool checkReverse();
bool checkSameValue();
bool checkLogicalZero();
void adjustIncrease(float& f, float& fMin);
void adjustIncrease(double& f, double& fMin);
bool calScaleByLinear();
bool calScaleByLogical();
void finalAdjustP();
@ -40,15 +40,15 @@ private:
private:
// 计算过程中涉及到的一些中间变量
float m_fMax;
float m_fMin;
float m_fMinRaw;
float m_fMaxRaw;
double m_fMax;
double m_fMin;
double m_fMinRaw;
double m_fMaxRaw;
bool m_bAxisX;
bool m_bLinear;
bool m_bNeedTurn;
bool m_bExpand;
float m_fTickIncrease;
QVector<float>* m_pVecTicks;
double m_fTickIncrease;
QVector<double>* m_pVecTicks;
};

@ -14,6 +14,6 @@ public:
// sPara 参数名称,可以是 英文也可以是中文,软件会自动判断
static iParameter* getPara(QString sPara);
static bool getParaValue(QString sPara, float& f);
static bool getParaValue(QString sPara, double& f);
};

@ -85,7 +85,7 @@ public:
void loadAndFillWithDefault(QString sPara,
QLineEdit* pTbxValue,
QComboBox* pCbxUnit,
float& fDefaultValue,
double& fDefaultValue,
QString& sCurUnit);
// 获取参数单位,为了一点点性能,可以英文、可以中文,查找英文优先

@ -38,8 +38,8 @@ public:
QString m_sNameY;
QString m_sUnitY;
float m_fK;//对于一点法而言
float m_fB;
double m_fK;//对于一点法而言
double m_fB;
QStringList m_listSrcTableCols;
};

@ -37,6 +37,7 @@ protected:
public:
QString m_sAlias; //中文名称
QString m_sSimpleAlias;//由于可能分组,显示是简写,所以增加名称简称
QString m_sIcon; //图标
QString m_sFig; //图片
QString m_sTips; //备注
@ -60,6 +61,11 @@ public:
// 20240814增加层级支持临时不涉及序列化
//QVector<iModelInfoBase*> m_vecChildren;
//iModelInfoBase* m_pParent;
// 20240930新增暂时不涉及xml文件节点的解析
QVariant m_oValue; //数值(支持类型不限,后续需要完善)
bool m_bValid; //是否有效
bool m_bVisible; //是否可见
};
typedef QVector<iModelInfoBase*> vecModelInfoBasesPtr;

@ -2,12 +2,12 @@
#include "iModelInfoBase.h"
/// @brief 参数所属类型区分默认为2(Float)
/// @brief 参数所属类型区分默认为2(double)
enum ParaInfoType
{
PIT_Str = 0, //0:字符串(文本) Text属性
PIT_Int, //1:整形
PIT_Float, //2:Float数值
PIT_Double, //2:Double数值
PIT_Img, //3:图像 Text属性 存放路径
PIT_Ba, //4:二进制 TODO
PIT_DateTime, //5:时间类型 "Text"存放时间
@ -70,12 +70,12 @@ public:
QString m_sName; //英文名称(简称)
QString m_sDesc; //英文描述
QString m_sUnit; //单位
float m_fDefault; //默认值
float m_fMax; //最大值
float m_fMin; //最小值
double m_fDefault; //默认值
double m_fMax; //最大值
double m_fMin; //最小值
int m_nDigit; //小数位数如果为0则为整数
// 参数所属类型区分,默认为(Float)
// 参数所属类型区分,默认为(double)
ParaInfoType m_oParaType;
// 增加新的边界类型,默认为(BDY_Not)
@ -83,7 +83,7 @@ public:
// 非xml解析
QString m_sAliasP; //父一级类别(别称),从外界传入
float m_fValue; //当前值,在对话框中调用时应用
double m_fValue; //当前值,在对话框中调用时应用
// 只读20180409
bool m_bReadonly;

@ -0,0 +1,16 @@
#pragma once
#include "iParameter.h"
/// @brief 参数描述,double类型
class I_XMLMANAGER_EXPORT iParameterDouble : public iParameter
{
public:
iParameterDouble();
~iParameterDouble();
protected:
virtual void initXmlTags();
};

@ -7,7 +7,7 @@ enum FieldInfoType
{
FIT_String = 0, //字符串(文本)
FIT_Int, //整形(含枚举)
FIT_Float, //Float数值
FIT_Double, //Double数值
FIT_Image, //图像
FIT_Binary, //二进制
FIT_DateTime, //日期类型,2017022增加日期类型 数值为5
@ -36,8 +36,8 @@ public:
bool m_bKey; //是否关键字
QString m_sUnit; //单位
FieldInfoType m_oDataType; //类型
float m_fMax; //对于数值型有效最大值默认值为100
float m_fMin; //对于数值型有效最小值默认为0
double m_fMax; //对于数值型有效最大值默认值为100
double m_fMin; //对于数值型有效最小值默认为0
int m_nDigit; //小数位数默认为3
bool m_bVisible; //20180314是否显示在界面上

@ -39,7 +39,7 @@ public:
protected:
// 单位切换
float convertValueByUnit(float f,
double convertValueByUnit(double f,
QString sUnitSrc,
QString sUnitDest);

@ -62,8 +62,8 @@ public:
int nMarginR = 20);
// 从各个Wxm_vecWxDatas中遍历查找
virtual bool setParaValue(QString sPara, float f);
virtual bool getParaValue(QString sPara, float& f);
virtual bool setParaValue(QString sPara, double f);
virtual bool getParaValue(QString sPara, double& f);
// 返回所有参数Key为英文ID
virtual bool getAllParaValues(QMap<QString, double>& map,
bool bOnlyFitted = false,

@ -4,6 +4,17 @@
// 该类只是为了方便进行边界相关信息的处理
// 进行边界类型信息的扩展而新增
//边界位置(是在井位上的位置)
enum eBdyPosType
{
BYP_Left = 0,
BYP_Right,
BYP_Top,
BYP_Bottom,
BYP_Cricle,
BYP_None
};
class X_GUI_GRIDPTY_EXPORT iBdyInfo
{
public:
@ -19,4 +30,7 @@ public:
QString m_sType; //类型,封闭 tr("CloseB")、定压 tr("FixP"),后续可以扩充为其他
bool m_bValid; //是否有效
eBdyPosType m_ePosType;
};
typedef QVector<iBdyInfo*> VecBdyInfos;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save