PaIRS-UniNa 0.2.10__cp313-cp313-macosx_11_0_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. PaIRS_UniNa/Calibration_Tab.py +347 -0
  2. PaIRS_UniNa/Changes.txt +174 -0
  3. PaIRS_UniNa/Custom_Top.py +303 -0
  4. PaIRS_UniNa/Explorer.py +3322 -0
  5. PaIRS_UniNa/FolderLoop.py +562 -0
  6. PaIRS_UniNa/Input_Tab.py +829 -0
  7. PaIRS_UniNa/Input_Tab_CalVi.py +787 -0
  8. PaIRS_UniNa/Input_Tab_tools.py +3026 -0
  9. PaIRS_UniNa/Log_Tab.py +110 -0
  10. PaIRS_UniNa/Output_Tab.py +922 -0
  11. PaIRS_UniNa/PaIRS.py +18 -0
  12. PaIRS_UniNa/PaIRS_PIV.py +873 -0
  13. PaIRS_UniNa/PaIRS_pypacks.py +1374 -0
  14. PaIRS_UniNa/Process_Tab.py +1761 -0
  15. PaIRS_UniNa/Process_Tab_CalVi.py +313 -0
  16. PaIRS_UniNa/Process_Tab_Disp.py +170 -0
  17. PaIRS_UniNa/Process_Tab_Min.py +120 -0
  18. PaIRS_UniNa/ResizePopup.py +55 -0
  19. PaIRS_UniNa/SPIVCalHelp.py +155 -0
  20. PaIRS_UniNa/Saving_tools.py +298 -0
  21. PaIRS_UniNa/TabTools.py +1413 -0
  22. PaIRS_UniNa/Vis_Tab.py +2176 -0
  23. PaIRS_UniNa/Vis_Tab_CalVi.py +982 -0
  24. PaIRS_UniNa/Whatsnew.py +130 -0
  25. PaIRS_UniNa/_PaIRS_PIV.so +0 -0
  26. PaIRS_UniNa/__init__.py +6 -0
  27. PaIRS_UniNa/__main__.py +45 -0
  28. PaIRS_UniNa/addwidgets_ps.py +1633 -0
  29. PaIRS_UniNa/calib.py +1488 -0
  30. PaIRS_UniNa/calibView.py +833 -0
  31. PaIRS_UniNa/gPaIRS.py +3957 -0
  32. PaIRS_UniNa/gPalette.py +189 -0
  33. PaIRS_UniNa/icons/abort.png +0 -0
  34. PaIRS_UniNa/icons/about.png +0 -0
  35. PaIRS_UniNa/icons/align_all.png +0 -0
  36. PaIRS_UniNa/icons/announcement.png +0 -0
  37. PaIRS_UniNa/icons/automatic_levels_off.png +0 -0
  38. PaIRS_UniNa/icons/automatic_levels_on.png +0 -0
  39. PaIRS_UniNa/icons/automatic_off.png +0 -0
  40. PaIRS_UniNa/icons/automatic_on.png +0 -0
  41. PaIRS_UniNa/icons/automatic_size_off.png +0 -0
  42. PaIRS_UniNa/icons/automatic_size_on.png +0 -0
  43. PaIRS_UniNa/icons/axes.png +0 -0
  44. PaIRS_UniNa/icons/background.png +0 -0
  45. PaIRS_UniNa/icons/background_vectors.png +0 -0
  46. PaIRS_UniNa/icons/bin_off.png +0 -0
  47. PaIRS_UniNa/icons/bin_on.png +0 -0
  48. PaIRS_UniNa/icons/browse_file_c.png +0 -0
  49. PaIRS_UniNa/icons/browse_folder_c.png +0 -0
  50. PaIRS_UniNa/icons/brush_cursor.png +0 -0
  51. PaIRS_UniNa/icons/bugfix.png +0 -0
  52. PaIRS_UniNa/icons/cal_proc.png +0 -0
  53. PaIRS_UniNa/icons/cal_proc_off.png +0 -0
  54. PaIRS_UniNa/icons/cal_step.png +0 -0
  55. PaIRS_UniNa/icons/cal_step_off.png +0 -0
  56. PaIRS_UniNa/icons/calibrate.png +0 -0
  57. PaIRS_UniNa/icons/calibration_logo.png +0 -0
  58. PaIRS_UniNa/icons/change_folder.png +0 -0
  59. PaIRS_UniNa/icons/change_folder_off.png +0 -0
  60. PaIRS_UniNa/icons/checklist.png +0 -0
  61. PaIRS_UniNa/icons/clean.png +0 -0
  62. PaIRS_UniNa/icons/clean_run.png +0 -0
  63. PaIRS_UniNa/icons/close.png +0 -0
  64. PaIRS_UniNa/icons/close_all.png +0 -0
  65. PaIRS_UniNa/icons/close_project.png +0 -0
  66. PaIRS_UniNa/icons/close_workspace.png +0 -0
  67. PaIRS_UniNa/icons/colormap.png +0 -0
  68. PaIRS_UniNa/icons/colormaps/Accent.png +0 -0
  69. PaIRS_UniNa/icons/colormaps/BrBG.png +0 -0
  70. PaIRS_UniNa/icons/colormaps/Dark2.png +0 -0
  71. PaIRS_UniNa/icons/colormaps/PRGn.png +0 -0
  72. PaIRS_UniNa/icons/colormaps/Paired.png +0 -0
  73. PaIRS_UniNa/icons/colormaps/Pastel1.png +0 -0
  74. PaIRS_UniNa/icons/colormaps/Pastel2.png +0 -0
  75. PaIRS_UniNa/icons/colormaps/PiYG.png +0 -0
  76. PaIRS_UniNa/icons/colormaps/PuOr.png +0 -0
  77. PaIRS_UniNa/icons/colormaps/RdBu.png +0 -0
  78. PaIRS_UniNa/icons/colormaps/RdGy.png +0 -0
  79. PaIRS_UniNa/icons/colormaps/RdYlBu.png +0 -0
  80. PaIRS_UniNa/icons/colormaps/RdYlGn.png +0 -0
  81. PaIRS_UniNa/icons/colormaps/Set1.png +0 -0
  82. PaIRS_UniNa/icons/colormaps/Set2.png +0 -0
  83. PaIRS_UniNa/icons/colormaps/Set3.png +0 -0
  84. PaIRS_UniNa/icons/colormaps/Spectral.png +0 -0
  85. PaIRS_UniNa/icons/colormaps/Wistia.png +0 -0
  86. PaIRS_UniNa/icons/colormaps/afmhot.png +0 -0
  87. PaIRS_UniNa/icons/colormaps/autumn.png +0 -0
  88. PaIRS_UniNa/icons/colormaps/binary.png +0 -0
  89. PaIRS_UniNa/icons/colormaps/blackVector.png +0 -0
  90. PaIRS_UniNa/icons/colormaps/blueVector.png +0 -0
  91. PaIRS_UniNa/icons/colormaps/bone.png +0 -0
  92. PaIRS_UniNa/icons/colormaps/brg.png +0 -0
  93. PaIRS_UniNa/icons/colormaps/bwr.png +0 -0
  94. PaIRS_UniNa/icons/colormaps/cividis.png +0 -0
  95. PaIRS_UniNa/icons/colormaps/cool.png +0 -0
  96. PaIRS_UniNa/icons/colormaps/coolwarm.png +0 -0
  97. PaIRS_UniNa/icons/colormaps/copper.png +0 -0
  98. PaIRS_UniNa/icons/colormaps/cubehelix.png +0 -0
  99. PaIRS_UniNa/icons/colormaps/cyanVector.png +0 -0
  100. PaIRS_UniNa/icons/colormaps/flag.png +0 -0
  101. PaIRS_UniNa/icons/colormaps/gist_heat.png +0 -0
  102. PaIRS_UniNa/icons/colormaps/gray.png +0 -0
  103. PaIRS_UniNa/icons/colormaps/greenVector.png +0 -0
  104. PaIRS_UniNa/icons/colormaps/hot.png +0 -0
  105. PaIRS_UniNa/icons/colormaps/hsv.png +0 -0
  106. PaIRS_UniNa/icons/colormaps/inferno.png +0 -0
  107. PaIRS_UniNa/icons/colormaps/jet.png +0 -0
  108. PaIRS_UniNa/icons/colormaps/magentaVector.png +0 -0
  109. PaIRS_UniNa/icons/colormaps/magma.png +0 -0
  110. PaIRS_UniNa/icons/colormaps/ocean.png +0 -0
  111. PaIRS_UniNa/icons/colormaps/pink.png +0 -0
  112. PaIRS_UniNa/icons/colormaps/plasma.png +0 -0
  113. PaIRS_UniNa/icons/colormaps/prism.png +0 -0
  114. PaIRS_UniNa/icons/colormaps/rainbow.png +0 -0
  115. PaIRS_UniNa/icons/colormaps/redVector.png +0 -0
  116. PaIRS_UniNa/icons/colormaps/seismic.png +0 -0
  117. PaIRS_UniNa/icons/colormaps/spring.png +0 -0
  118. PaIRS_UniNa/icons/colormaps/summer.png +0 -0
  119. PaIRS_UniNa/icons/colormaps/tab10.png +0 -0
  120. PaIRS_UniNa/icons/colormaps/tab20.png +0 -0
  121. PaIRS_UniNa/icons/colormaps/tab20b.png +0 -0
  122. PaIRS_UniNa/icons/colormaps/tab20c.png +0 -0
  123. PaIRS_UniNa/icons/colormaps/terrain.png +0 -0
  124. PaIRS_UniNa/icons/colormaps/twilight.png +0 -0
  125. PaIRS_UniNa/icons/colormaps/viridis.png +0 -0
  126. PaIRS_UniNa/icons/colormaps/whiteVector.png +0 -0
  127. PaIRS_UniNa/icons/colormaps/winter.png +0 -0
  128. PaIRS_UniNa/icons/colormaps/yellowVector.png +0 -0
  129. PaIRS_UniNa/icons/common_region.png +0 -0
  130. PaIRS_UniNa/icons/common_region_off.png +0 -0
  131. PaIRS_UniNa/icons/completed.png +0 -0
  132. PaIRS_UniNa/icons/contourf_off.png +0 -0
  133. PaIRS_UniNa/icons/contourf_on.png +0 -0
  134. PaIRS_UniNa/icons/copy.png +0 -0
  135. PaIRS_UniNa/icons/copy_process.png +0 -0
  136. PaIRS_UniNa/icons/copy_process_off.png +0 -0
  137. PaIRS_UniNa/icons/copygrid.png +0 -0
  138. PaIRS_UniNa/icons/cursor_lamp.png +0 -0
  139. PaIRS_UniNa/icons/cut.png +0 -0
  140. PaIRS_UniNa/icons/cut_warnings.png +0 -0
  141. PaIRS_UniNa/icons/darkmode.png +0 -0
  142. PaIRS_UniNa/icons/debug_run.png +0 -0
  143. PaIRS_UniNa/icons/delete.png +0 -0
  144. PaIRS_UniNa/icons/deleteErr.png +0 -0
  145. PaIRS_UniNa/icons/disp_step.png +0 -0
  146. PaIRS_UniNa/icons/disp_step_off.png +0 -0
  147. PaIRS_UniNa/icons/down.png +0 -0
  148. PaIRS_UniNa/icons/edit_list.png +0 -0
  149. PaIRS_UniNa/icons/editing.png +0 -0
  150. PaIRS_UniNa/icons/example_list.png +0 -0
  151. PaIRS_UniNa/icons/find_all_planes.png +0 -0
  152. PaIRS_UniNa/icons/find_plane.png +0 -0
  153. PaIRS_UniNa/icons/flaticon_PaIRS.png +0 -0
  154. PaIRS_UniNa/icons/flaticon_PaIRS_beta.png +0 -0
  155. PaIRS_UniNa/icons/flaticon_PaIRS_download.png +0 -0
  156. PaIRS_UniNa/icons/flaticon_PaIRS_download_warning.png +0 -0
  157. PaIRS_UniNa/icons/flip_y_off.png +0 -0
  158. PaIRS_UniNa/icons/flip_y_on.png +0 -0
  159. PaIRS_UniNa/icons/focusErrr.png +0 -0
  160. PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
  161. PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
  162. PaIRS_UniNa/icons/gear.gif +0 -0
  163. PaIRS_UniNa/icons/gear.png +0 -0
  164. PaIRS_UniNa/icons/ger.png +0 -0
  165. PaIRS_UniNa/icons/greenv.png +0 -0
  166. PaIRS_UniNa/icons/guide.png +0 -0
  167. PaIRS_UniNa/icons/icon_CalVi.png +0 -0
  168. PaIRS_UniNa/icons/icon_PaIRS.png +0 -0
  169. PaIRS_UniNa/icons/import.png +0 -0
  170. PaIRS_UniNa/icons/import_set.png +0 -0
  171. PaIRS_UniNa/icons/information.png +0 -0
  172. PaIRS_UniNa/icons/information2.png +0 -0
  173. PaIRS_UniNa/icons/input_logo.png +0 -0
  174. PaIRS_UniNa/icons/issue.png +0 -0
  175. PaIRS_UniNa/icons/laser_NTR.png +0 -0
  176. PaIRS_UniNa/icons/laser_TR_double.png +0 -0
  177. PaIRS_UniNa/icons/laser_TR_single.png +0 -0
  178. PaIRS_UniNa/icons/link.png +0 -0
  179. PaIRS_UniNa/icons/linked.png +0 -0
  180. PaIRS_UniNa/icons/loaded.png +0 -0
  181. PaIRS_UniNa/icons/loading_2.gif +0 -0
  182. PaIRS_UniNa/icons/log_logo.png +0 -0
  183. PaIRS_UniNa/icons/logo_CalVi.png +0 -0
  184. PaIRS_UniNa/icons/logo_CalVi_completo.png +0 -0
  185. PaIRS_UniNa/icons/logo_CalVi_party.png +0 -0
  186. PaIRS_UniNa/icons/logo_PaIRS.png +0 -0
  187. PaIRS_UniNa/icons/logo_PaIRS_completo.png +0 -0
  188. PaIRS_UniNa/icons/logo_PaIRS_download.png +0 -0
  189. PaIRS_UniNa/icons/logo_PaIRS_party_rect.png +0 -0
  190. PaIRS_UniNa/icons/logo_PaIRS_rect.png +0 -0
  191. PaIRS_UniNa/icons/logo_opaco.png +0 -0
  192. PaIRS_UniNa/icons/mask.png +0 -0
  193. PaIRS_UniNa/icons/measure.png +0 -0
  194. PaIRS_UniNa/icons/measure_off.png +0 -0
  195. PaIRS_UniNa/icons/min_proc.png +0 -0
  196. PaIRS_UniNa/icons/min_proc_off.png +0 -0
  197. PaIRS_UniNa/icons/min_step.png +0 -0
  198. PaIRS_UniNa/icons/min_step_off.png +0 -0
  199. PaIRS_UniNa/icons/minus.png +0 -0
  200. PaIRS_UniNa/icons/mirror_u.png +0 -0
  201. PaIRS_UniNa/icons/mirror_v.png +0 -0
  202. PaIRS_UniNa/icons/mirror_x.png +0 -0
  203. PaIRS_UniNa/icons/mirror_y.png +0 -0
  204. PaIRS_UniNa/icons/mtplt.png +0 -0
  205. PaIRS_UniNa/icons/new.png +0 -0
  206. PaIRS_UniNa/icons/new_workspace.png +0 -0
  207. PaIRS_UniNa/icons/news.png +0 -0
  208. PaIRS_UniNa/icons/normal_run.png +0 -0
  209. PaIRS_UniNa/icons/open.png +0 -0
  210. PaIRS_UniNa/icons/open_image.png +0 -0
  211. PaIRS_UniNa/icons/open_new_window.png +0 -0
  212. PaIRS_UniNa/icons/open_result.png +0 -0
  213. PaIRS_UniNa/icons/open_workspace.png +0 -0
  214. PaIRS_UniNa/icons/output_logo.png +0 -0
  215. PaIRS_UniNa/icons/paste_above.png +0 -0
  216. PaIRS_UniNa/icons/paste_below.png +0 -0
  217. PaIRS_UniNa/icons/pause.png +0 -0
  218. PaIRS_UniNa/icons/paused.png +0 -0
  219. PaIRS_UniNa/icons/pencil_bw.png +0 -0
  220. PaIRS_UniNa/icons/piv_proc.png +0 -0
  221. PaIRS_UniNa/icons/piv_proc_off.png +0 -0
  222. PaIRS_UniNa/icons/piv_step.png +0 -0
  223. PaIRS_UniNa/icons/piv_step_off.png +0 -0
  224. PaIRS_UniNa/icons/plane.png +0 -0
  225. PaIRS_UniNa/icons/play.png +0 -0
  226. PaIRS_UniNa/icons/plus.png +0 -0
  227. PaIRS_UniNa/icons/process_logo.png +0 -0
  228. PaIRS_UniNa/icons/process_loop.png +0 -0
  229. PaIRS_UniNa/icons/project.png +0 -0
  230. PaIRS_UniNa/icons/pylog.png +0 -0
  231. PaIRS_UniNa/icons/python_warning.png +0 -0
  232. PaIRS_UniNa/icons/queue.png +0 -0
  233. PaIRS_UniNa/icons/quit.png +0 -0
  234. PaIRS_UniNa/icons/read.png +0 -0
  235. PaIRS_UniNa/icons/read_list.png +0 -0
  236. PaIRS_UniNa/icons/redo.png +0 -0
  237. PaIRS_UniNa/icons/redx.png +0 -0
  238. PaIRS_UniNa/icons/reset.png +0 -0
  239. PaIRS_UniNa/icons/reset_levels.png +0 -0
  240. PaIRS_UniNa/icons/resize_icon.png +0 -0
  241. PaIRS_UniNa/icons/restore.png +0 -0
  242. PaIRS_UniNa/icons/restore_undo.png +0 -0
  243. PaIRS_UniNa/icons/rotate_clock.png +0 -0
  244. PaIRS_UniNa/icons/rotate_counter.png +0 -0
  245. PaIRS_UniNa/icons/rotate_v_clock.png +0 -0
  246. PaIRS_UniNa/icons/rotate_v_counter.png +0 -0
  247. PaIRS_UniNa/icons/running.gif +0 -0
  248. PaIRS_UniNa/icons/running.png +0 -0
  249. PaIRS_UniNa/icons/running_warn.png +0 -0
  250. PaIRS_UniNa/icons/sandglass.png +0 -0
  251. PaIRS_UniNa/icons/save.png +0 -0
  252. PaIRS_UniNa/icons/save_and_stop.png +0 -0
  253. PaIRS_UniNa/icons/save_cfg.png +0 -0
  254. PaIRS_UniNa/icons/saveas.png +0 -0
  255. PaIRS_UniNa/icons/saveas_workspace.png +0 -0
  256. PaIRS_UniNa/icons/scale_all.png +0 -0
  257. PaIRS_UniNa/icons/scale_down.png +0 -0
  258. PaIRS_UniNa/icons/scale_up.png +0 -0
  259. PaIRS_UniNa/icons/scan_list.png +0 -0
  260. PaIRS_UniNa/icons/scan_path.png +0 -0
  261. PaIRS_UniNa/icons/scan_path_loop.png +0 -0
  262. PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
  263. PaIRS_UniNa/icons/search.png +0 -0
  264. PaIRS_UniNa/icons/showIW_off.png +0 -0
  265. PaIRS_UniNa/icons/showIW_on.png +0 -0
  266. PaIRS_UniNa/icons/show_all.png +0 -0
  267. PaIRS_UniNa/icons/sort.png +0 -0
  268. PaIRS_UniNa/icons/sort_reversed.png +0 -0
  269. PaIRS_UniNa/icons/spiv_proc.png +0 -0
  270. PaIRS_UniNa/icons/spiv_proc_off.png +0 -0
  271. PaIRS_UniNa/icons/spiv_setup_no.png +0 -0
  272. PaIRS_UniNa/icons/spiv_setup_ok.png +0 -0
  273. PaIRS_UniNa/icons/star.png +0 -0
  274. PaIRS_UniNa/icons/step_inheritance.png +0 -0
  275. PaIRS_UniNa/icons/subMIN_off.png +0 -0
  276. PaIRS_UniNa/icons/subMIN_on.png +0 -0
  277. PaIRS_UniNa/icons/tom.png +0 -0
  278. PaIRS_UniNa/icons/trash.png +0 -0
  279. PaIRS_UniNa/icons/undo.png +0 -0
  280. PaIRS_UniNa/icons/unedited.png +0 -0
  281. PaIRS_UniNa/icons/unina_dii.png +0 -0
  282. PaIRS_UniNa/icons/uninitialized.png +0 -0
  283. PaIRS_UniNa/icons/unlink.png +0 -0
  284. PaIRS_UniNa/icons/unwrap_items.png +0 -0
  285. PaIRS_UniNa/icons/up.png +0 -0
  286. PaIRS_UniNa/icons/updating_import.gif +0 -0
  287. PaIRS_UniNa/icons/updating_pairs.gif +0 -0
  288. PaIRS_UniNa/icons/vectorColor.png +0 -0
  289. PaIRS_UniNa/icons/vettore.png +0 -0
  290. PaIRS_UniNa/icons/view.png +0 -0
  291. PaIRS_UniNa/icons/view_off.png +0 -0
  292. PaIRS_UniNa/icons/vis_logo.png +0 -0
  293. PaIRS_UniNa/icons/waiting_circle.png +0 -0
  294. PaIRS_UniNa/icons/warning.png +0 -0
  295. PaIRS_UniNa/icons/warning_circle.png +0 -0
  296. PaIRS_UniNa/icons/window.png +0 -0
  297. PaIRS_UniNa/icons/workspace.png +0 -0
  298. PaIRS_UniNa/icons/wrap_items.png +0 -0
  299. PaIRS_UniNa/icons/write_list.png +0 -0
  300. PaIRS_UniNa/listLib.py +303 -0
  301. PaIRS_UniNa/mtfPIV.py +256 -0
  302. PaIRS_UniNa/parForMulti.py +435 -0
  303. PaIRS_UniNa/parForWorkers.py +593 -0
  304. PaIRS_UniNa/pivParFor.py +235 -0
  305. PaIRS_UniNa/plt_util.py +141 -0
  306. PaIRS_UniNa/preProcParFor.py +155 -0
  307. PaIRS_UniNa/procTools.py +1439 -0
  308. PaIRS_UniNa/readcfg.py +52 -0
  309. PaIRS_UniNa/rqrdpckgs.txt +9 -0
  310. PaIRS_UniNa/stereoPivParFor.py +227 -0
  311. PaIRS_UniNa/tAVarie.py +215 -0
  312. PaIRS_UniNa/tabSplitter.py +612 -0
  313. PaIRS_UniNa/ui_Calibration_Tab.py +578 -0
  314. PaIRS_UniNa/ui_Custom_Top.py +296 -0
  315. PaIRS_UniNa/ui_Input_Tab.py +1101 -0
  316. PaIRS_UniNa/ui_Input_Tab_CalVi.py +1283 -0
  317. PaIRS_UniNa/ui_Log_Tab.py +263 -0
  318. PaIRS_UniNa/ui_Output_Tab.py +2362 -0
  319. PaIRS_UniNa/ui_Process_Tab.py +3810 -0
  320. PaIRS_UniNa/ui_Process_Tab_CalVi.py +1549 -0
  321. PaIRS_UniNa/ui_Process_Tab_Disp.py +1141 -0
  322. PaIRS_UniNa/ui_Process_Tab_Min.py +437 -0
  323. PaIRS_UniNa/ui_ResizePopup.py +204 -0
  324. PaIRS_UniNa/ui_Vis_Tab.py +1628 -0
  325. PaIRS_UniNa/ui_Vis_Tab_CalVi.py +1251 -0
  326. PaIRS_UniNa/ui_Whatsnew.py +132 -0
  327. PaIRS_UniNa/ui_gPairs.py +877 -0
  328. PaIRS_UniNa/ui_infoPaIRS.py +551 -0
  329. PaIRS_UniNa/whatsnew.txt +4 -0
  330. pairs_unina-0.2.10.dist-info/METADATA +159 -0
  331. pairs_unina-0.2.10.dist-info/RECORD +333 -0
  332. pairs_unina-0.2.10.dist-info/WHEEL +5 -0
  333. pairs_unina-0.2.10.dist-info/top_level.txt +2 -0
@@ -0,0 +1,313 @@
1
+ from .ui_Process_Tab_CalVi import*
2
+ from .TabTools import*
3
+
4
+ DotColor_labels=['Black dot', #0
5
+ 'White dot', #1
6
+ ]
7
+
8
+ DotTypeSearch_items=['cross-correlation mask', #0
9
+ 'top hat mask with tight tails', #1
10
+ 'top hat mask with broad tails', #2
11
+ 'Gaussian mask', #3
12
+ 'interpolation', #4
13
+ 'centroid', #5
14
+ ]
15
+ DotTypeSearch_order=[i for i in range(len(DotTypeSearch_items))] #************ change here, please!
16
+
17
+ TargetType_items=['single plane', #0
18
+ 'double plane', #1
19
+ ]
20
+ TargetType_order=[i for i in range(len(TargetType_items))] #************ change here, please!
21
+
22
+ CamMod_items=['polynomial', #0
23
+ 'rational', #1
24
+ 'tri-polynomial', #2
25
+ 'pinhole', #3
26
+ 'pinhole + cylinder', #4
27
+ ]
28
+ CamMod_order=[i for i in range(len(CamMod_items))] #************ change here, please!
29
+
30
+ CorrMod_items=['a: no correction', #0
31
+ 'b: radial distortions', #1
32
+ 'c: b + tangential distortions', #2
33
+ 'd: c + cylinder origin', #3
34
+ 'e: d + cylinder rotation', #4
35
+ 'f: e + cylinder radius and thickness', #5
36
+ 'g: f + refractive index ratio', #6
37
+ ]
38
+ CorrMod_order=[i for i in range(len(CorrMod_items))] #************ change here, please!
39
+
40
+ CalibProcType_items=['standard', #0
41
+ 'unknown planes', #1
42
+ 'equation of the plane', #2
43
+ 'cylinder', #3
44
+ ]
45
+ CalibProcType_order=[i for i in range(len(CalibProcType_items))] #************ change here, please!
46
+
47
+ CorrMod_Cyl_items=[ 'a: cylinder origin and rotation', #0
48
+ 'b: a + cylinder thickness', #1
49
+ 'c: b + refractive index (n) ratio', #2
50
+ 'd: b + internal radius', #3
51
+ 'e: a + internal radius and n ratio', #4
52
+ 'f: all cylinder parameters', #5
53
+ ]
54
+ CorrMod_Cyl_order=[i for i in range(len(CorrMod_Cyl_items))] #************ change here, please!
55
+
56
+
57
+
58
+ spin_tips={
59
+ 'DotThresh' : 'Threshold on maximum/minimum value for search of control points',
60
+ 'DotDiam' : 'Dot diameter in pixels (search radius is 2.5 times this value)',
61
+ 'DotDx' : 'Spacing of dots along x on each level of the target',
62
+ 'DotDy' : 'Spacing of dots along y on each level of the target',
63
+ 'OriginXShift' : 'Shift of the origin along x on the second level of the target',
64
+ 'OriginYShift' : 'Shift of the origin along y on the second level of the target',
65
+ 'OriginZShift' : 'Shift of the origin along z on the second level of the target',
66
+ 'XDeg' : 'Degree of polynomial along x',
67
+ 'YDeg' : 'Degree of polynomial along y',
68
+ 'ZDeg' : 'Degree of polynomial along z',
69
+ 'PixAR' : 'Pixel aspect ratio (y/x)',
70
+ 'PixPitch' : 'Pixel pitch in millimeter units',
71
+ 'CylRad' : 'Initial value for cylinder internal radius in mm',
72
+ 'CylThick' : 'Initial value for cylinder wall thickness in mm',
73
+ 'CylNRatio' : 'Refractive index ratio (fluid/solid wall)',
74
+ }
75
+ check_tips={
76
+ 'Plane' : 'Optimize the plane constants',
77
+ 'Pinhole' : 'Optimize the pinhole parameters',
78
+ 'SaveLOS' : 'Save physical coordinates of the intersections of the lines of sight with the cylinder',
79
+ }
80
+ radio_tips={}
81
+ line_edit_tips={}
82
+ button_tips={
83
+ 'DotColor' : 'White/black dot in the image',
84
+ 'tool_CollapBox_Target' : 'Graphics',
85
+ 'CollapBox_Target' : 'Graphics',
86
+ 'tool_CollapBox_CalPar' : 'Graphics',
87
+ 'CollapBox_CalPar' : 'Graphics',
88
+ }
89
+ combo_tips={
90
+ 'DotTypeSearch' : 'Type of search for control points',
91
+ 'TargetType' : 'Type of target (single or double plane)',
92
+ 'CalibProcType' : 'Type of calibration procedure',
93
+ 'CamMod' : 'Type of mapping function',
94
+ 'CorrMod' : 'Parameters of the correction to be optimized',
95
+ 'CorrMod_Cyl' : 'Cylinder parameters of the correction to be optimized',
96
+ }
97
+
98
+ class PROpar_CalVi(TABpar):
99
+ def __init__(self,Process=ProcessTypes.null,Step=StepTypes.null):
100
+ self.setup(Process,Step)
101
+ super().__init__('PROpar_CalVi','Process_CalVi')
102
+ self.unchecked_fields+=['FlagTarget_reset','FlagCalib_reset']
103
+
104
+ def setup(self,Process,Step):
105
+ self.Process = Process
106
+ self.Step = Step
107
+
108
+ #***Dot
109
+ self.DotColor=0
110
+ self.DotTypeSearch=0
111
+ self.DotThresh=0.5
112
+ self.DotDiam=10
113
+
114
+ #***Type of target
115
+ self.TargetType=0
116
+ self.DotDx=5
117
+ self.DotDy=5
118
+ #double plane target
119
+ self.OriginXShift=2.5
120
+ self.OriginYShift=2.5
121
+ self.OriginZShift=2.5
122
+
123
+ #***Calibration procedure
124
+ self.CalibProcType=0 #standard
125
+ self.FlagPlane=0
126
+ self.FlagPinhole=1
127
+
128
+ #***Camera calibration model
129
+ self.CamMod=3
130
+ #polynomials/rational functions
131
+ self.XDeg=2
132
+ self.YDeg=2
133
+ self.ZDeg=2
134
+ #pinhole
135
+ self.PixAR=1
136
+ self.PixPitch=0.0065
137
+ #correction model
138
+ self.CorrMod=2 #radial+tangential distortions
139
+ #cylinder parameters
140
+ self.CylRad=30
141
+ self.CylThick=2
142
+ self.CylNRatio=1
143
+ #correction model cylinder
144
+ self.CorrMod_Cyl=0 #cylinder origin and rotation
145
+ self.FlagSaveLOS=0
146
+
147
+
148
+ class Process_Tab_CalVi(gPaIRS_Tab):
149
+ class Process_Tab_Signals(gPaIRS_Tab.Tab_Signals):
150
+ pass
151
+
152
+ def __init__(self,parent: QWidget =None, flagInit= __name__ == "__main__"):
153
+ super().__init__(parent,Ui_ProcessTab_CalVi,PROpar_CalVi)
154
+ self.signals=self.Process_Tab_Signals(self)
155
+
156
+ #------------------------------------- Graphical interface: widgets
157
+ self.TABname='Process_CalVi'
158
+ self.ui: Ui_ProcessTab_CalVi
159
+
160
+ #necessary to change the name and the order of the items
161
+ for g in list(globals()):
162
+ if '_items' in g or '_ord' in g or '_tips' in g:
163
+ #pri.Info.blue(f'Adding {g} to {self.name_tab}')
164
+ setattr(self,g,eval(g))
165
+
166
+ if __name__ == "__main__":
167
+ self.app=app
168
+ setAppGuiPalette(self)
169
+
170
+ #------------------------------------- Graphical interface: miscellanea
171
+ self.Flag_CYLINDERCAL_option=None
172
+ self.Flag_CYLINDERCAL=True
173
+
174
+ #------------------------------------- Declaration of parameters
175
+ self.PROpar_base=PROpar_CalVi()
176
+ self.PROpar:PROpar_CalVi=self.TABpar
177
+ self.PROpar_old:PROpar_CalVi=self.TABpar_old
178
+
179
+ #------------------------------------- Callbacks
180
+ self.defineWidgets()
181
+ self.setupWid() #---------------- IMPORTANT
182
+
183
+ self.defineCallbacks()
184
+ self.connectCallbacks()
185
+
186
+ self.defineSettings()
187
+
188
+ self.adjustTABpar=self.adjustPROpar
189
+ self.setTABlayout=self.setPROlayout
190
+
191
+ #------------------------------------- Initializing
192
+ if flagInit:
193
+ self.initialize()
194
+
195
+
196
+ def initialize(self):
197
+ pri.Info.yellow(f'{"*"*20} PROCESS CalVi initialization {"*"*20}')
198
+ self.setTABpar(FlagAdjustPar=True,FlagBridge=False)
199
+ self.add_TABpar('initialization')
200
+ self.setFocus()
201
+
202
+ #*************************************************** Adjusting parameters
203
+ def adjustPROpar(self):
204
+ if self.PROpar.CalibProcType!=self.PROpar_old.CalibProcType:
205
+ if self.PROpar.CalibProcType==0:
206
+ self.PROpar.FlagPlane=True
207
+ elif self.PROpar.CalibProcType==3:
208
+ self.PROpar.FlagPlane=False
209
+ self.PROpar.FlagPinhole=False
210
+ self.adjustCalibProcType()
211
+ self.adjustCorrMod()
212
+
213
+
214
+ #*************************************************** Layout
215
+ def setPROlayout(self):
216
+ #pri.Time.blue(1,'setPROpar: Beginning')
217
+ self.ui.w_DoublePlane.setVisible(self.PROpar.TargetType!=0)
218
+
219
+ if bool(self.Flag_CYLINDERCAL_option):
220
+ self.Flag_CYLINDERCAL_option.setEnabled(self.PROpar.CalibProcType!=3)
221
+
222
+ #check_Plane
223
+ self.ui.check_Plane.setText(f'{"Show" if self.PROpar.CalibProcType==0 else "Opt."} plane const.')
224
+ self.ui.check_Plane.setEnabled(self.PROpar.CalibProcType not in (1,2))
225
+
226
+ #check_Pinhole
227
+ self.ui.check_Pinhole.setEnabled(self.PROpar.CalibProcType==3)
228
+
229
+ #combo_CamMod
230
+ self.ui.combo_CamMod.clear()
231
+ flagEnabled=True
232
+ if self.PROpar.CalibProcType==0:
233
+ for it in CamMod_items:
234
+ self.ui.combo_CamMod.addItem(it)
235
+ elif self.PROpar.CalibProcType in (1,2): #unknwon planes (2) compatible with cylinder ?
236
+ self.ui.combo_CamMod.addItem(CamMod_items[3])
237
+ flagEnabled=False
238
+ elif self.PROpar.CalibProcType==3:
239
+ self.ui.combo_CamMod.addItem(CamMod_items[-1])
240
+ flagEnabled=False
241
+ self.ui.combo_CamMod.setEnabled(flagEnabled)
242
+
243
+ #stacked_Widget
244
+ FlagCamMod=self.PROpar.CamMod>=3
245
+ self.ui.w_CamMod_par.setCurrentIndex(int(FlagCamMod))
246
+ self.ui.check_Plane.setVisible(FlagCamMod)
247
+ self.ui.check_Pinhole.setVisible(FlagCamMod)
248
+ self.ui.w_CamMod_par.setEnabled(self.PROpar.CamMod < 3 or self.PROpar.FlagPinhole)
249
+
250
+ #combo_corrMod
251
+ self.ui.w_CylPar.setVisible(self.PROpar.CamMod==4)
252
+ FlagCorrMod=self.PROpar.CamMod >= 3 and self.PROpar.FlagPinhole
253
+ self.ui.combo_CorrMod.setVisible(FlagCorrMod)
254
+ self.ui.label_CorrMod.setVisible(FlagCorrMod)
255
+ if FlagCorrMod:
256
+ self.ui.combo_CorrMod.clear()
257
+ if self.PROpar.CalibProcType==0 and self.PROpar.CamMod==4: l=len(CorrMod_items)
258
+ else: l=3
259
+ for it in CorrMod_items[:l]:
260
+ self.ui.combo_CorrMod.addItem(it)
261
+ self.ui.w_CalibProc_Cyl.setVisible(self.PROpar.CalibProcType==3)
262
+
263
+ #*************************************************** Target parameters
264
+ #******************** Actions
265
+ def button_DotColor_action(self):
266
+ if self.ui.button_DotColor.text()==DotColor_labels[0]: self.PROpar.DotColor=1
267
+ else: self.PROpar.DotColor=0
268
+
269
+ #******************** Settings
270
+ def button_DotColor_set(self):
271
+ self.ui.button_DotColor.setText(DotColor_labels[self.PROpar.DotColor])
272
+
273
+ #*************************************************** Calibration parameters
274
+ #******************** Actions
275
+ def check_SaveLOS_action(self):
276
+ if self.ui.check_SaveLOS.isChecked():
277
+ warningDialog(self,'Please notice that the feature to save the lines-of-sight (LOS) data to the disk is not currently available!\n\nContact the authors via email if interested.')
278
+
279
+ #******************** Adjusting
280
+ def adjustCalibProcType(self):
281
+ if self.PROpar.CalibProcType in (1,2):
282
+ self.PROpar.FlagPlane=True
283
+
284
+ if self.PROpar.CalibProcType!=3:
285
+ self.PROpar.FlagPinhole=self.PROpar.CalibProcType<2
286
+
287
+ if self.PROpar.CalibProcType in (1,2) and self.PROpar.CamMod!=3:
288
+ self.PROpar.CamMod=3
289
+ elif self.PROpar.CalibProcType==3:
290
+ self.PROpar.CamMod=4
291
+
292
+ def adjustCorrMod(self):
293
+ if not(self.PROpar.CalibProcType==0 and self.PROpar.CamMod==4) and self.PROpar.CorrMod>2:
294
+ self.PROpar.CorrMod=2
295
+
296
+ #*************************************************** From Parameters to UI
297
+ def setCYLPARDebug(self):
298
+ self.ui.combo_CalibProcType.clear()
299
+ if self.Flag_CYLINDERCAL: l=len(CalibProcType_items)
300
+ else: l=len(CalibProcType_items)-1
301
+ for it in CalibProcType_items[:l]:
302
+ self.ui.combo_CalibProcType.addItem(it)
303
+
304
+ if __name__ == "__main__":
305
+ import sys
306
+ app=QApplication.instance()
307
+ if not app:app = QApplication(sys.argv)
308
+ app.setStyle('Fusion')
309
+ object = Process_Tab_CalVi(None)
310
+ object.show()
311
+ app.exec()
312
+ app.quit()
313
+ app=None
@@ -0,0 +1,170 @@
1
+ from .ui_Process_Tab_Disp import*
2
+ from .TabTools import*
3
+ from .Process_Tab import Process_Tab
4
+
5
+ spin_tips={
6
+ 'Nit' : 'Number of iterations',
7
+ 'order' : 'Kernel width for image interpolation',
8
+ 'SemiWidth_Epipolar' : 'Semi-width normal to epipolar line',
9
+ 'Filter_SemiWidth' : 'Semi-width of filter',
10
+ 'Threshold' : 'Threshold for disparity computation',
11
+ 'Nit_OutDet' : 'Number of iterations for outlier detection',
12
+ 'Std_Threshold' : 'S.t.d. threshold for disparity validation',
13
+ }
14
+ check_tips={}
15
+ radio_tips={}
16
+ line_edit_tips={
17
+ 'IW' : 'IW sizes and/or spacings',
18
+ }
19
+ button_tips={
20
+ 'tool_CollapBox_FinIt' : 'Graphics',
21
+ 'CollapBox_FinIt' : 'Graphics',
22
+ 'tool_CollapBox_Interp' : 'Graphics',
23
+ 'CollapBox_Interp' : 'Graphics',
24
+ 'tool_CollapBox_Interp_2' : 'Graphics',
25
+ 'CollapBox_Interp_2' : 'Graphics',
26
+ }
27
+ combo_tips={
28
+ 'ImInt' : 'Image interpolation',
29
+ 'par_pol' : 'Polynomial interpolation',
30
+ 'par_imshift' : 'Moving window',
31
+ 'frames' : 'Use frame 1/2',
32
+ }
33
+
34
+ class PROpar_Disp(TABpar):
35
+ def __init__(self,Process=ProcessTypes.null,Step=StepTypes.null):
36
+ self.setup(Process,Step)
37
+ super().__init__('PROpar_Disp','PROCESS_Tab_Disp')
38
+ self.unchecked_fields+=[]
39
+
40
+ def setup(self,Process,Step):
41
+ self.Process = Process
42
+ self.Step = Step
43
+
44
+ self.Nit = 5
45
+ self.frames = 1
46
+ self.IntIniz = 57
47
+ self.IntIniz_ind_list = [3,1,2]
48
+ self.Vect =[256,128,256,128]
49
+
50
+ self.SemiWidth_Epipolar = 40
51
+ self.Filter_SemiWidth = 10
52
+ self.Threshold = 0.5
53
+
54
+ self.Nit_OutDet = 5
55
+ self.Std_Threshold = 3.0
56
+
57
+ class Process_Tab_Disp(gPaIRS_Tab):
58
+ class Process_Tab_Signals(gPaIRS_Tab.Tab_Signals):
59
+ pass
60
+
61
+ def __init__(self,parent: QWidget =None, flagInit= __name__ == "__main__"):
62
+ pri.Time.yellow('Process Disp: init')
63
+ super().__init__(parent,Ui_ProcessTab_Disp,PROpar_Disp)
64
+ self.signals=self.Process_Tab_Signals(self)
65
+ pri.Time.yellow('Process Disp: ui')
66
+
67
+ #------------------------------------- Graphical interface: widgets
68
+ self.TABname='Process_Disp'
69
+ self.ui: Ui_ProcessTab_Disp
70
+
71
+ #necessary to change the name and the order of the items
72
+ for g in list(globals()):
73
+ if '_items' in g or '_ord' in g or '_tips' in g:
74
+ #pri.Info.blue(f'Adding {g} to {self.name_tab}')
75
+ setattr(self,g,eval(g))
76
+
77
+ pri.Time.yellow('Process Disp: globals')
78
+
79
+ if __name__ == "__main__":
80
+ self.app=app
81
+ setAppGuiPalette(self)
82
+
83
+ pri.Time.yellow('Process Disp: setupWid')
84
+
85
+ #------------------------------------- Declaration of parameters
86
+ self.PROpar_base=PROpar_Disp()
87
+ self.PROpar:PROpar_Disp=self.TABpar
88
+ self.PROpar_old:PROpar_Disp=self.TABpar_old
89
+
90
+ pri.Time.yellow('Process Disp: par')
91
+
92
+ #------------------------------------- Callbacks
93
+ self.defineWidgets()
94
+ self.setupWid() #---------------- IMPORTANT
95
+
96
+ Process_Tab.defineInterpActions(self)
97
+ self.defineCallbacks()
98
+ self.connectCallbacks()
99
+
100
+ Process_Tab.defineInterpSet(self)
101
+ self.defineSettings()
102
+
103
+ self.adjustTABpar=self.adjustPROpar
104
+ self.setTABlayout=self.setPROlayout
105
+
106
+ pri.Time.yellow('Process Disp: define callbacks')
107
+
108
+ #------------------------------------- Initializing
109
+ if flagInit:
110
+ self.initialize()
111
+
112
+ def initialize(self):
113
+ pri.Info.yellow(f'{"*"*20} PROCESS Disp initialization {"*"*20}')
114
+ self.setTABpar(FlagAdjustPar=True,FlagBridge=False)
115
+ self.add_TABpar('initialization')
116
+ self.setFocus()
117
+
118
+ #*************************************************** Adjusting parameters
119
+ def adjustPROpar(self):
120
+ minIWSize=min([self.PROpar.Vect[0],self.PROpar.Vect[2]])
121
+ self.PROpar.SemiWidth_Epipolar=min([self.PROpar.SemiWidth_Epipolar, int(minIWSize/4)])
122
+ self.PROpar.Filter_SemiWidth=min([self.PROpar.Filter_SemiWidth, int(minIWSize/4)])
123
+ self.ui.spin_SemiWidth_Epipolar.setMaximum(int(minIWSize/4))
124
+ self.ui.spin_Filter_SemiWidth.setMaximum(int(minIWSize/4))
125
+ return
126
+
127
+ #*************************************************** Layout
128
+ def setPROlayout(self):
129
+ self.ui.w_Std_Threshold.setVisible(self.PROpar.Nit_OutDet>0)
130
+ return
131
+
132
+ #*************************************************** Windowing and Correlation
133
+ #******************** Actions
134
+ def line_edit_IW_action(self):
135
+ text=self.ui.line_edit_IW.text()
136
+ split_text=re.split(r'(\d+)', text)[1:-1:2]
137
+ if len(split_text)==0:
138
+ message="Please insert at least one value!"
139
+ show_mouse_tooltip(self,message)
140
+ self.line_edit_IW_set()
141
+ return
142
+ split_num=[int(t) for t in split_text]
143
+ if len(split_num)<4: split_num+=[split_num[-1]]*(4-len(split_num))
144
+ vect=[int(split_num[i]) for i in (0,2,1,3)]
145
+ FlagValid=len(vect)==4 and all([v>0 for v in vect])
146
+ if FlagValid:
147
+ self.PROpar.Vect=vect
148
+ message=""
149
+ else:
150
+ message='IW sizes or spacings were assigned inconsistently! Please, retry!'
151
+ show_mouse_tooltip(self,message)
152
+ self.line_edit_IW_set()
153
+ return
154
+
155
+ #******************** Settings
156
+ def line_edit_IW_set(self):
157
+ vect=[f'{self.PROpar.Vect[i]}' for i in (0,2,1,3)]
158
+ vectStr=', '.join(vect)
159
+ self.ui.line_edit_IW.setText(vectStr)
160
+
161
+ if __name__ == "__main__":
162
+ import sys
163
+ app=QApplication.instance()
164
+ if not app:app = QApplication(sys.argv)
165
+ app.setStyle('Fusion')
166
+ object = Process_Tab_Disp(None)
167
+ object.show()
168
+ app.exec()
169
+ app.quit()
170
+ app=None
@@ -0,0 +1,120 @@
1
+ from .ui_Process_Tab_Min import*
2
+ from .TabTools import*
3
+
4
+ LaserTypeSearch_items=[ 'single laser', #0
5
+ 'double laser', #1
6
+ ]
7
+ LaserTypeSearch_order=[i for i in range(len(LaserTypeSearch_items))] #************ change here, please!
8
+
9
+ spin_tips={
10
+ 'SogliaNoise' : 'Minimum allowed value for validation',
11
+ 'SogliaStd' : 'Minimum allowed st.d. value for validation',
12
+ }
13
+ check_tips={}
14
+ radio_tips={
15
+ 'TR': 'Time-resolved sequence',
16
+ }
17
+ line_edit_tips={}
18
+ button_tips={}
19
+ combo_tips={
20
+ 'LaserType': 'Laser setup',
21
+ }
22
+
23
+ class PROpar_Min(TABpar):
24
+ def __init__(self,Process=ProcessTypes.null,Step=StepTypes.null):
25
+ self.setup(Process,Step)
26
+ super().__init__('PROpar_Min','Process_Min')
27
+ self.unchecked_fields+=[]
28
+
29
+ def setup(self,Process,Step):
30
+ self.Process = Process
31
+ self.Step = Step
32
+
33
+ self.FlagTR = False
34
+ self.LaserType = 0 #0 single, 1 double
35
+ self.SogliaNoise = 5.0
36
+ self.SogliaStd = 1.5
37
+
38
+ class Process_Tab_Min(gPaIRS_Tab):
39
+ class Process_Tab_Signals(gPaIRS_Tab.Tab_Signals):
40
+ pass
41
+
42
+ def __init__(self,parent: QWidget =None, flagInit= __name__ == "__main__"):
43
+ super().__init__(parent,Ui_ProcessTab_Min,PROpar_Min)
44
+ self.signals=self.Process_Tab_Signals(self)
45
+
46
+ #------------------------------------- Graphical interface: widgets
47
+ self.TABname='Process_Min'
48
+ self.ui: Ui_ProcessTab_Min
49
+
50
+ #necessary to change the name and the order of the items
51
+ for g in list(globals()):
52
+ if '_items' in g or '_ord' in g or '_tips' in g:
53
+ #pri.Info.blue(f'Adding {g} to {self.name_tab}')
54
+ setattr(self,g,eval(g))
55
+
56
+ if __name__ == "__main__":
57
+ self.app=app
58
+ setAppGuiPalette(self)
59
+
60
+ self.pixmap_laser_NTR=QPixmap(icons_path+'laser_NTR.png')
61
+ self.pixmap_laser_TR_single=QPixmap(icons_path+'laser_TR_single.png')
62
+ self.pixmap_laser_TR_double=QPixmap(icons_path+'laser_TR_double.png')
63
+
64
+ #------------------------------------- Declaration of parameters
65
+ self.PROpar_base=PROpar_Min()
66
+ self.PROpar:PROpar_Min=self.TABpar
67
+ self.PROpar_old:PROpar_Min=self.TABpar_old
68
+
69
+ #------------------------------------- Callbacks
70
+ self.defineWidgets()
71
+ self.setupWid() #---------------- IMPORTANT
72
+
73
+ self.defineCallbacks()
74
+ self.connectCallbacks()
75
+
76
+ self.defineSettings()
77
+
78
+ self.adjustTABpar=self.adjustPROpar
79
+ self.setTABlayout=self.setPROlayout
80
+
81
+ #------------------------------------- Initializing
82
+ if flagInit:
83
+ self.initialize()
84
+
85
+
86
+ def initialize(self):
87
+ pri.Info.yellow(f'{"*"*20} PROCESS Min initialization {"*"*20}')
88
+ self.setTABpar(FlagAdjustPar=True,FlagBridge=False)
89
+ self.add_TABpar('initialization')
90
+ self.setFocus()
91
+
92
+ #*************************************************** Adjusting parameters
93
+ def adjustPROpar(self):
94
+ if not self.PROpar.FlagTR: self.PROpar.LaserType=1
95
+
96
+
97
+ #*************************************************** Layout
98
+ def setPROlayout(self):
99
+ #pri.Time.blue(1,'setPROpar: Beginning')
100
+ self.ui.w_LaserType.setEnabled(self.PROpar.FlagTR)
101
+
102
+ if not self.PROpar.FlagTR:
103
+ self.ui.example_label.setPixmap(self.pixmap_laser_NTR)
104
+ else:
105
+ if self.PROpar.LaserType==0:
106
+ self.ui.example_label.setPixmap(self.pixmap_laser_TR_single)
107
+ elif self.PROpar.LaserType==1:
108
+ self.ui.example_label.setPixmap(self.pixmap_laser_TR_double)
109
+
110
+
111
+ if __name__ == "__main__":
112
+ import sys
113
+ app=QApplication.instance()
114
+ if not app:app = QApplication(sys.argv)
115
+ app.setStyle('Fusion')
116
+ object = Process_Tab_Min(None)
117
+ object.show()
118
+ app.exec()
119
+ app.quit()
120
+ app=None
@@ -0,0 +1,55 @@
1
+ from .addwidgets_ps import*
2
+ from .ui_ResizePopup import*
3
+ from .TabTools import*
4
+
5
+ class ResizePopup(QWidget):
6
+ FlagTransparentBack=0 #tra 0 e 1
7
+
8
+ def __init__(self,callbacks=[]):
9
+ super().__init__()
10
+ ui=Ui_ResizePopup()
11
+ ui.setupUi(self)
12
+ self.ui=ui
13
+ setupWid(self)
14
+
15
+ self.setFixedSize(self.width(),self.height())
16
+ self.setWindowFlags(Qt.Window|Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint| Qt.Popup)
17
+ self.setAttribute(Qt.WA_NoSystemBackground)
18
+ self.setAttribute(Qt.WA_TranslucentBackground)
19
+
20
+ def createCallb(k,flag):
21
+ if flag:
22
+ def Callb():
23
+ callbacks[k]()
24
+ self.hide()
25
+ else:
26
+ def Callb():
27
+ self.hide()
28
+ return Callb
29
+ for k in range(6):
30
+ b:QToolButton=getattr(self.ui,f'b{k}')
31
+ flag=k<=len(callbacks)-1
32
+ b.clicked.connect(createCallb(k,flag))
33
+
34
+ self.ui.button_close_tab.clicked.connect(self.hide)
35
+ self.setWidgetColor()
36
+
37
+ def setWidgetColor(self):
38
+ widget=self.ui.w_b_size
39
+ color = widget.palette().color(QtGui.QPalette.Window)
40
+ alpha=255-self.FlagTransparentBack*255
41
+ col=f"rgba({color.red()}, {color.green()}, {color.blue()}, {alpha})"
42
+ backc="background:"+col
43
+ ss=f"QWidget#{widget.objectName()}"+"{border: 1px solid gray;border-radius: 15px;"+backc+"}"
44
+ widget.setStyleSheet(ss)
45
+
46
+ if __name__ == "__main__":
47
+ import sys
48
+ app=QApplication.instance()
49
+ if not app: app = QApplication(sys.argv)
50
+ app.setStyle('Fusion')
51
+ object = ResizePopup()
52
+ object.exec()
53
+ #app.exec()
54
+ app.quit()
55
+ app=None