From 89abcd850d1df81060f93bdf4d601f4b9c2b0fd2 Mon Sep 17 00:00:00 2001 From: Paul Chevalier <paul.chevailer@student-cs.fr> Date: Wed, 12 Mar 2025 15:55:04 +0100 Subject: [PATCH] multithreading ne marche pas --- .../__pycache__/Display.cpython-310.pyc | Bin 2760 -> 3743 bytes .../ImageProcessing.cpython-310.pyc | Bin 3429 -> 4234 bytes Code_objets/__pycache__/Main.cpython-310.pyc | Bin 5721 -> 2678 bytes Code_objets/__pycache__/Menu.cpython-310.pyc | Bin 5295 -> 5319 bytes .../__pycache__/Parameters.cpython-310.pyc | Bin 3046 -> 3068 bytes Code_objets/__pycache__/Point.cpython-310.pyc | Bin 1914 -> 2578 bytes .../__pycache__/Trajectory.cpython-310.pyc | Bin 6972 -> 7024 bytes Code_objets/__pycache__/UI.cpython-310.pyc | Bin 6579 -> 6592 bytes .../__pycache__/VideoManager.cpython-310.pyc | Bin 2198 -> 2435 bytes test_chargement.py | 2 +- test_chercherdossier.py | 34 +++++++++- test_multithrading_logo.py | 58 +++++++++--------- 12 files changed, 60 insertions(+), 34 deletions(-) diff --git a/Code_objets/__pycache__/Display.cpython-310.pyc b/Code_objets/__pycache__/Display.cpython-310.pyc index b2170e9591314447e8a13d70e170b9cae774f34b..ce8f04f19664a039fe127ec94b25b6607f4ace33 100644 GIT binary patch literal 3743 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 UGI|1O9XYa<FB#6mRc`(KUv^PfQ~&?~ delta 1104 zcmZuw-%Aux6rMZ3c4l^0*VQd`)qY^$m`b~@Xk~?2NfZ)D1QHCx-f?$j+*!_yiDro8 zTMs4owFr9a$%mkxdiQS_=&6U;m;QjBy64VPA`Z-V=H7G8cg{WEosYxEg`OarwIu!& zmyT<_rX>A5{4hYq53ddu<t2&AR5_5S@>*V1C|QwgwT-dMhwlf;^TTh`Q#FaEKan*; zGc<cZRt?%kyAPyQljdj-w-(LQUT)L0k0%${7`aSB_K1{7ioGIth|a!~$vv4<F7h|b zao8ohl9M2z(uxEM-?ZhpXS3OYpz4L8N1ZirH@sLA#+E_jA&@~x{R4x4#g-qqooIeE zDO5S=#3DQSdyTN=yW3MdfbGc!JJQBRlS+`rOtl)cwm*}E`UETcqZRcmj{u7m^^mCS ztv)e<4a8b2Xf&hKEp$_Gw;b2^9pMgh?3cd2*cP?4SgF1!$9lB^Ro@dQh*PZ~bU06} zRRcc&C}6D<4dAkmL*dJt)D9_kdd7prX3dL|DmH;$4D3b_$v6(U#9@HVnq@M~*3Dvi z6gLUN2zzJtci}qL-Dc!O02kO-bC!&<-{#E7MRZspr>}dBT0OEA5V;Ak1#3tzAx()@ zt-Et#8dl5YA~}8|j6~g73+rynOS%z#B?^i02v<M*VeLO{<881t7{HRM-)JUtfg-N; z#}Ak9I~7|My2QE|X{lq&FoZpvn$<Ml8)rx9m(SYbq}Tb{P6>Lrf$`$rAUmiWVr{EI zqdMHgFeQ=y96Hb9p5cy3wx8K~AY>qb#cVyvn#ZhL96IeycWmWMstOOh#ul>UB*Xmd zl|8(!AnqCd6mT8^WrsNgtOHmbFz>{X|7(q7L?J@VG9-f-ilOpX%PB_QP%;XLL95B2 kttY6K7kLmu7f+}N?^(pLF~1SeP2anX;|x(m!A|n>U!*?ZYybcN diff --git a/Code_objets/__pycache__/ImageProcessing.cpython-310.pyc b/Code_objets/__pycache__/ImageProcessing.cpython-310.pyc index 08735fde6bd45504c90013cab1f8dcb071789803..c99760e2bcecd0066e7f4f9d7b9ae4529e83bce2 100644 GIT binary patch delta 1979 zcmZuyOK%)S5T5RN?(D;kNwAH<Bmo(Qga{iF2oflYW1NSu9n8b{q1Ae)cRkB`X5BM> zYDSCX2mulYYxn_cBo02JT)6NDIB-O$??~i`IKVAb^{k1rVMbk3U0qe(UG-JX@6UXF zt`roDwgS)hfBsURJ9AKqNaJ9CX~{ivPgyLwPrHNgExAMUiZd+wZmn19Y>o$27KWZ* z7j~<{E9)#`JglndrTZXHVNAjZ`+>wHR?13Dfs*tEa{D|Ly0jJ4t2nCALe{KtG~+su zBZZskJu=;wLk9*BgBnC5>96FaHabR4>HI7(vC@GJ4haFSL3jb?^iY{cxr*N-GUI6C z)Mm@AM6B$yov2*HW6P~X&a0H+3TuHYPPtyK#yIn<tSfRT$K8ef$m&&Yf+Qmrt`+Jm zDp#7#@+y!)kc23<i9sx4rFRQYr9Y{~HUZi3Qv?Rx${YL!j7t*Y(u77z2Ljcg5H4Dy zhcr=PhJ(7Qt9?Tg&D9e<)@~>(?<YoVG?1H4%t(*ThOti)E4E_&GmW#@O7zH#ERg41 zeOPJl(`7BmC3cce3ULlx+KqfnMwF{cl8f_?&GWG>=Y^QcbvuTTg8uOw?el|*Ym6wM zS;)9Ltz(Xh8>1V;pk3^gF!YW&<NX22^4bfKw)Y$&%q_-OgOG6y$OFu!(<jvG)`T!P z3%xzYOCS^adf>9A&{u;U77D%A3@VY(s)1h<>UyOmRL_U`&hE}G*QEZo=SFM7SYuv& zEfTp^7Dh55Xw=$u+Qlr9IiGEpGhN8(cDbux%=UIOU<ebYo6RT`ebNtZ>$wOEc}Q3h zDjbYsvIX547jzfK&IEiXdeFfOp!1xfw3ToSI8D{a0O?mXYEhfmfDnxgk^b)cETNy% zzwP|qa8IFK`VXVklQ_bgW4TBi-2?_J;ZVUk=nz*{L_|A?AMIj98#)Z*P+g`8NuUxt zCKe4stYd*nu45l6vWV1lkxr6)`U8DY=L6t26?En7as9M7+v?U2W{QsjaWrnEE9%Id z$4i4F(BFa)VifSkLvZJQs*$~Oy*GTK^bQ^lzxx-qrmT0kfF_Pphe(7Rbt_ZPO1Wp_ zJSbjIN44oISAgr<LA!c%_BT=9V>JP?DU@GLztes^jaL_DWi`aJ@waiIl=}L@J6TJR z8<%lS<m$Y#D_Q;q8X3_VAZV@E{{>jPd0#bd5KG=f<ytyxo*zPgCmM>04W$)?bLm&+ z!ssiwh~$VqK)~@2fH*e4j{HFS&|JQ72_>ooIKK_NP<h~G4sW5BY*Sj$V*YIUh4tm^ z918EEktOrX=TRUXeu&&hNIpjL2@-VA|0iBTN0$>T=}PX~%V-U491B>+txyd%{b(le z7a0%u61rGG@+lH|U>z_sW?wtqlZ1<)P`$rrkC4lEP<IB248kmMj+wb1Soi!XzuFA& zKQ!s_YLoF{)YQ_S^Di4RqOYg_<i~p5kAqS(ohV!*eQ8)2Z{r_^_aQ-yO2l$R4@WR? z%vg5#W#sT|96g-KtUNwOm}4_TCLEGXiC87eutqG~QsFgmR>(;$$H;D>`>$=Tw{~S@ ZgdJ8nW4`Ct0={wV?}?4lsp9iQ`xgjvz03dr delta 1128 zcmZuw&rcIU6yDk2-ELcH$`5HkAqX}Gja3vBA_fV;1Dco^gOH{y)3T)9ZDtoDri6nr zG2F=L(WE_i=$VWD2cEpU2NMsP82<z>zBj9&=x*lQZ)e{7=FK-V`$J#)(|#&tN$}(s z-dDe;4$>i6K6v(c{()5Jjxvk&a+Tg^zC(k+^{SE8D6?{%hLi=4j9I@P<k;q*1t`}f zO{paDDRQ@$Fa<gaa-;^dRuMlPiD~=|Sx6cfkBOGde~__N4JbCDvjn6mwLq&)2r|-^ z#8+MyJ)zQ4o6@EhDw{eqqphsSyYj9Ak!DkFlU*E5w5&GdmXb}CztZM%cGR`iSTBdP z<k2T#se;SlAGHxJQk?A~m-W?A>v$wm9lx;y%Vu;tjxA_Rg}PXl@9Fs>*2)Cvz#_X! z!&13cE3E+}p(jWKSc*w3(g)3!RsKOf%fISl;~lb8AS?^x9a%_5nkXigJJMtci0I|h z#=^{LV5}bi@^Z-Y2q#MTy}ILyF@p{8cgEYC4Ky;!Yr(o(sl*yt{@i>-RQ}1#5B1=% z9&RuiY@E<#xTyn&{fRro6eTE3;T3DRPndC3ZDgPW4L>-?Th^mN6Q@S#$lrRAUjryu zY!tc8dy*>`(4c}6dwLOgq%hx&Cm+Ws;j8L5s5io2CtuvVik%afWHMY1yN)0PCy`Ad z+(5XAfb#$KNkhqEk%#un3CxDm={}`GGO`_i%L|u$Z<#Wm-9m|Jgc$@;FdPCtlbX%_ zZ9c;-pFBKB<;lb)j4dJv6RrR&7_oe|?t1f{Q}gjk&AH5}(MWN<5FGuSKCcT$yLl!v zdQ!d%L~irN%q&Uq{mkV(ygjTB0S^fqM8JKDOP)oB6*0{FV?U2}i{Z^fg9AKHrj#b8 xYTBj(uVJQ5-A;&zf*#kcd0X|yj<6!K0*4J#>bYLUXAe;ywf>oeZ=O0s<e%|x;&=c6 diff --git a/Code_objets/__pycache__/Main.cpython-310.pyc b/Code_objets/__pycache__/Main.cpython-310.pyc index 68af849b8fc70a0c48ed4b41d9d702408da65197..a0b1bc93be8307a1b2f8d23e2810a75c30885253 100644 GIT binary patch literal 2678 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 HvA_KeGk(Ml literal 5721 zcmbtY&2JmW72lm*lB*>}Q4%FlwrtZMX(Bh49LKE#)NlgCaT_!-(mD+a0>NU<SyC%4 zcd6N>Y#F<00tIM#a|`q?0X@{{p*i$F$fbuIddO)`EqW+~qRpY`p+Rf+_hw0nwv{$$ zNzBfh_vX#KulaZrO-|Yxe&2iNw_Sct)BZ?}@gGCu6_ogQ_;8Kuf!4}vy~R}9=$Wm8 zp5uzGB5*7y^{keqa7HlEvs?C%UT&2^H-k#A(yAz2A(-q<wk8!^4640qtE%8qFx8uC zO)1z4YQ0*k26%$oA8M^>Ugj0lGklU)QP1)zUPE2y(|iW?9G~TN)bo6f&!b-O8hl}c ziH^6x8#{Vyk?Xgh$t`VpaUWV~H<xwE-rm4>%8fUoz87}<zzf};2bBGmD*z>)h^fQt zJ-6$<C8D+$$9~uas&w6t`+>U+u=0-2z35FhL?3}R`@!pNGT`V(a1rHIlz0W7MBCL< zh_a}qI(-{3-mC_Up)mO7m<4T*#5M1o6<!hzMCdgGx5@oDal^LP^uk1V%}dRG<cCQt zbd0=DbL|tf%p?o@(u_An0=TF;y)djVJ<!AyI(>0rbuH?7t9_`6F;+uwBkH*q60g0s z`f9{IC%V1vCGqN;t{<-Sx1}|jy9(x*=2~H58r4(!8bB(25nZHNt}C>xALv=v76@jG zs7cGgd2~Hg)Pr8ZcKFF}dS3IB2U~71_~ZdpZVtj+VWqE_ARdZkr4JO<U8&zyjr>ys zO%`L`8HDW_z)I?KOw<9lNy^cWJai!SchKPQO_yZ`XPKGm*R^-6Ss^VbADJ7Pn9pI* z3YoEKC0c5v+73$@XwB51P$PcQ?52{{uRS}I^?|O8wp^5k@H(;(z@wfl27b>+UF!Lv z@AMOC5+Do8b5Ckyt4@k>9<s)yj-{KrrB_f)oxNXW)DlY|v?(A)KNCO+MR{ipK&nBv z)eI4d`h3Pz{Y+-0I&?9_YRXbW)p}k-Q&4soYEX9A0yKrrtAtIBuE8{28<ktyroCC* zWSs0^-1MJ^BsatyW?eR=9!S=I0p$|Pi%)7;@?+<=8w6+2IVR6pP{-0Q>hn;JJ!Fqe zQ=A6+G37|n11C1n7>1q-GYDyOa*PRK3iqxEFWicJuel{$d}E&$7tIKa+uXvEAVk+4 zwAZ}nn;my>7k$Dg+<*A!(W8BoM>pP9LNDv$1g1Jlfxzn|6xK0CR}CI9bwMlQvB)EV z$t#B*VWOJqD6ninTZHgepw(4uwzpvOcnP#6(Ad*7aX!`K^Pm||(V+H|xaC3~nfU^u zrL<47<VqRXI}#UBxaN1)5QV~P`%kJk;kJ{3L)|WdFQ#3=((CY2Ug}IN1NE4P$ek4w znkc?#<(uIi6kSBvBy2~^^aP=|qh~BJQ-s<MmSD<u3#qYQ+|$vgq^M?U?pg=9i995; zLRb3<43ibPo|RBrC=;q}WHvXma$@h=ds<e>>(p?{sj*wx)9#yC(8liM9;Cp?)qLb^ zGPUCFM_M|01>+`DA89)}r$yoAFy=BdE2$AatKMhfpOfj2@@;&Q7j}$nDxJ!=fejYF z2e?QZ{O$}d?dcn)*hx#gcty)fVTt7ZNZXxFr$|SPVZrU_4QL{V(EsDZRz3^$AbeUD zA18Gso!!tfdn6GwFCRIUCO$oKEa1~}{3%&#$Opd+dji5-e>!Xd!cj$@BYaxDuM6`? zE)A68k$j4xIE%cTm2w?Y=)mm_9b7LZbG!3D);c<`@W~IYWFfWlK0E9>Y_2HPqbR(% zXJj?5rzo&_jV#p#COma8;?z-mYQ)-66mHXq;BLT!i+p-dSM|)E&I_PSA5dn8l=_e| z1In><I-TjTJw2OEj;FPB7ExWNxJ>J6^PN*sL1WIDSQ<+ApDP^3r&j!{5OJX}H2z_) zUn(5tQary74IMV!`~V&->RQMMRy`1Lu!23Z1-EB4K9^gkt{umPqk+-amyT=Myy`#y z-});#$$$H*{{keS)?Y)0c@4}z5n|iVCek9X|41k3%NyB3SO<p13>YRDUj(L17*Qrn zT;|7sVf=UoU*ljY+&9Gc$+lR9ke<AG7<YRtYa|OvJ;nWw7aNEOSo1=*n4H)>nX>g_ zaw=`4i;KV~r<C3E7TeJ~ET{3}0yfxj`Vgb~qzl|mPOLZgV9Wb#^Es^2MMNu$KcmqO zB}x~G3-hy)t@%<zgFTq|EVnT<F{yPZ**G^zo=f-yb|~pMb~w`!{YNs8cH@$hbl7G7 zFUjLOL*2<6N9exrwC?CRraSQ+cx7B4a2}xxjhB0Ayf0~ZbpIjcDX)#`{=Z7j;=e=k z)2X?B2J812)$3=o<LR;V_;HOF>RPsxF7XrauOT*Q7emyaz|LM)vHKqE_S8wFPANK# zPVAoJIMw*cSG4S8dNO&2pW4wk7)JUTPNT2UX`~K)qBMt;&xdE&sqs^BLc<z)7BT-E z)-7|2{B+i&6_7UT+U{~Pw|+jyr-j|Gt22)6K0mB4Pz^~|_!;8Z!}@(puG8u1vDyES zj?T_g4GmFM39E`elKU?sxv}>co4-&xogGU4MOxwKh-X53QjW*xAJ;5DpX1la4pf$( z$uBK8#93S+-rnc<stb%XLND3>7w%<(E*UB{*r(LsvHJ%lEp*wMMfn@u5WBb|zH4PV z;tYEW$8PXbwu$R1F6nfeR9Bt{NTyaUO5J~;4>PDZzY3}B!oEuP@OISeU)!QlX^Mt+ zuhFBd>1q(Q-5|aOVASbL<q?z|V%~#%M$olNyhtBP*91)`zJU+TBfg2xe;!M$Qa{D| zWg~5W#gVRj^^xSn9Y5qw;3UBTcv}oXaflVpZLv?jkW;ajI6YT%{m_YU^Om(S#31BI ztBpLreMDlAUx0Xd1V4sQSo#cEaxW5MpOU2g8^lFTsc%ZX-vxx<?_Wl`1%F9B*)O2I zyejRuEj%yu!%ieCT@o+~{Uj2xAejZ-=mjNG(hee*I~{s2kOfr<8bVGF`rJ)C2Uq8< zoGftP)ufsD=xO8HED}e-)5vwU=n=sQqa?RLWyqWltL8^)qB0_t_NX*MWp}bn!l^9L z*_K7OkCzNC4LoItGEG;aJi6m2vLM{B>q#r{!?^FZy>Z67vfPfsHpC54RCX+FH%y#0 z57+-h8ttu1(gdd`4ZIY{;v28ue9gHmEA40yCO4z7<%vix4Z?o@Na76*;&8vy@sMd@ zIy3g~A-%oh`pI{_ZD~Y;Q;regm7*Qtbz%A`ZfFxH+kKdIfJtAHQ$0k7(?58ckv13Z z9VcFM(Pv7*WTgB-L>B#CycXSAJ|peixb(h*OorHH2~QdHej_c=5PP93OMVZ&irSJ5 zd}+faD(8tkIT=RE@IxQllq5PGD9*tXJ1RjMxl_37((D9oSG-Baw?<Bb@sJBjJM``j zoh9{qvUJzE9o=<a7y*}LL1AQJn+Q^ed~5E&>G=YZx1%5uVgcidOEh@p&Ke#JoW6h8 z3u0MGqQr&rd8;<0d7_PXBD_pVixO%NOH3LYF#iNuJ`cZ1?urdBbUH}qA|XwXFXg+2 z+IrNka~%_Y3nl(1J{6;gB+piF4HeX;L7DC0A2h>e7OUtc8@)*2RpR{`JIT-+<+72# zQ(OjDAKWwS8j{9q?3i&(uhNL%dn+ID;YIU0D*{u|i<mJl7=tZ=<A>;TO-~@rwTGrL zf+{A>ic#>lRn~ndTa{JO+r%u?hoLqZ(pAi70VZlqVJ&>k&#SYj4XbRis#!6#4{Dza zvV^o8#0+*T=N`q+<&|Fl^71j!B2pn7^!nTR+MDjVNk52^z`u?6GlFn_<h9Wc67dEx zl#&fZw<iQ09CBvZTA^s=z8gecp|bLCgPLzWw7VScKWbA^4@zp;sy$(Bi=YhrKxTT~ zbR0p?DY=8y*>G^SNb71Z;)B4uMq8|UtF(~OldCERUxI*PmWhAGvaF(2)_!EIz}b)f E4I4#6;{X5v diff --git a/Code_objets/__pycache__/Menu.cpython-310.pyc b/Code_objets/__pycache__/Menu.cpython-310.pyc index d58ad8dfad2736a4aa7de1d20331852235f347a7..ce9d7b57e75225fab452216fc37fa6b650f79b01 100644 GIT binary patch delta 204 zcmZ3ld0dk>pO=@50SK0UJeR&`BCjl?%|z`6#yJz$OxNUIpq|3NkdcugRiK$6N+VTx zf#yO6AWvg~7Klz^3<hIOfz3&b@7NiIHwSX+GBVDYT+g+ValvFw?njJ^H}mjBF)}XS zoX)Gt#JFQ}FaK@E1Cuiao-uBo93a@wcy96o!TG#`K<kS|fCL8v57XoxAwTva0U%FP xd-ENk7)CbM;+)jfg30D0W{eJ#^F*XrSs3a$94GgRNO5tovN3Wn@-VSH0svw$Ht7HW delta 222 zcmX@Exn7eupO=@50SL~-ok(w;$ScceG*P>Oar(qH)8z%48KTrvg%@ZnWME`SRbQY9 zqEi@y!B~@ja}MJ>c1FR?(VV)BjI$<pa;;>XH`$o`5#z$mVmwidj7v8c@~Sd1Zks%v z|2E^k$;ATC7&lIi66|L@Gx?R^d|m;drNtsZf`fsFaq=`FKPFAB&98-G7$^IQm^#^k zB{/<qu0gHZs8S(v#Pxfq3*8R|J4IDjlJAfJO7#Nq)$1x7v~n}eB+4XB5S<q-ht CA25~x diff --git a/Code_objets/__pycache__/Parameters.cpython-310.pyc b/Code_objets/__pycache__/Parameters.cpython-310.pyc index a1fef98059f7080b27dd78b68da050f302d94867..b0b5de2665bbbec468cb0efca8cf3ece29f80928 100644 GIT binary patch delta 725 zcmZvaze~eF6vuOyOPjV7#6=f}ih`-wY8CNE@wZk%OQlnTP%0@RHf_ANgR|l;_cu5Q zDku*6Pq?^9CMUts-NE~&N`f|l@4b8PbMM`|yZ64YzIY=Zk1F!J{CqyRzlaa)&B=+S zSfr+y7-@~z#3VK~De3rCQ}yD^)N+cYTI@`**eNwb7AY!*_JM49gSuLwaaeD;F>fe4 z6<)FL+7Bv;h$P#MMI^;LBF<SN)Q@?;xM9PgAMY!BBdU1Pj>wD{4!x#Ql5knQVpk27 zPXo`wqd6$UXW;N;7S^~J4VOmdrD;$;4o-C%%`56J46YE@;r#?)2>|AkkVQx!uSn}V z*=0C`=tMVE`rOz-wN>^uS3a2nv?d<)Qd)<(BIT;ng{z^ZiO!G-)&rOkOOfTV9L!C~ zI%EqH*chg$fUD!%;x<zBnvtDnenbD(h{5RjC{h~CrFF+;&12r;tKc^ve`|=BXlcbO z;2qEs7@zj*>>yBp_#5=Eg^7ABvBzZC2=gQ;3Q-|LQsgPLZRdpN;Q-bxi>qhthSjcB R7l<U9c)q&QLv;D~(r>~xj`9Ei delta 684 zcmZvZKTE?v7{+s#OB-9exKt2_B7#A*wpD9Y)cUW2);~BkOHopaXxn(LgOh{eE;slY zIts4ps(u0q4h|yt9UQzTQ4*{PJon!7{_ef^O}^qE@mM1kizxExD?C<nSF!%}Nx88U ziySE?R(eEg#3aP?s7c+NYO;c2sTR9XEOt&!%_6&sp?#v#ra>HSyKzu&-CW+PL>Dt` zC#uT?_e5N?L@17ZT->w4(2x7c-Ut=X+9An`$<WK_h$I|V->X#&l}`Ylfuq@|%(F0D znL?Blv*FUvv<wZ(li*al(QH%yVDN;v3-2cYO8_uWL*^iXx?({u&Mv?VqGSJ|(sQEK zN~`QPS3VsFv?QMNQZkG%FQx5G;b<5s<t^#peE?Hprz=0Qim(7#hO9vXjbWRSg0}d& zc<9=7hmn(~ep4N1L?&`MjFJX(Xx(;L^O(2zBKQ@^-#f&6q_mhr#{EF^h<w_=X9I~X uh~J?9TU2otO=MM>HbUG0MIi%H<OevZ*{8e+14Ksw@fz*byNNE}9{LS6ScE_T diff --git a/Code_objets/__pycache__/Point.cpython-310.pyc b/Code_objets/__pycache__/Point.cpython-310.pyc index 9439b4b96538d8fb0358552264e1412cc94e2503..8bddbd546715215a73f05cd2f67bd9f319f53228 100644 GIT binary patch delta 1041 zcmZWn&1(}u6rVRUyWOT~OlnY5zgnqjS7Pf2h?jyO=&3=>MFTPkyPJ|WU(7~nLm+62 zRq#^hC_;M>jDLp*PyPXmH~#{U_T+n;Rs#;a-<vlxZ}`36dq=7F*;0FYI>B&#`t^PN zvc=d>3dWbj;2v6d1>qs{nGd^YJG@L0_XS2GU^}7=zAQ1<^7b=1c(ecPWyL?Y%gU$x z9G=cb)}wa4)%67aa<XX8(e9&#S%f~UL!T+u=dlN$mDmu9LmqLpg|<Bukqm=IErP8G zw#`#`FhTqrNSZI;fo)QJ6B4G!*C1uS@y9S@&Wm?&#(WlUVb<J|n_Sx_BTw71*?tjR zG+$)}=FL^B0t@D~wZ^qDKdcL|XntF-;F{^%IWy05gD_3(*a164j)a?{#58etL6a~p z*AwU>t3y?4l5_-9begP(%CFaIfeu>T>v$4UY8rYou_(*q*F`rSIZCyv%|NLrp;WW& zo1y&#@}@X(_O1rZBnuZ194wv71W1tpjz-=QjyyKuh@^-!uqoLACXCVohRtGSzQ=0d zgU@%Jvham3v0ZYHNmjO~k<nDlPIaof+VpTX{w~^+?$p5W5<-{lumkAxzBuH75@8d0 zUm^->;YcVsh^+8=C(t^H8Ihz4Bg<<y+S;{Z_4G1cXop~uU<F|a(WFvdqZ)=v{gX8Q z<0jsRHbM$)NI)+;#&=n%daK^WR1zy*R6hmucRX@=-1x|KgMGkBMi1x(dX661ZwU0( z$4L~!F7`5Gzb_H_)t)TOZN<2~+H(qXaV@Jy;JR{D3TdQCthf}eGc<Yw?5++vTB$pD z6Hh|^KklOkuB{g-dx^j$AnEjNglPI$6)$KsPLzqq?gl-fvC{<vieil%mV~s0XZS@C S$CZ@O1)Qn8Lo`z?yYdGQMb&8l delta 430 zcmY*V%SyvQ6rDSh$;(uw7A#s(EC>Pd8+<IfYLIp(NGnM#C2b=UkyZjeH-aE~SK`WL zKfyon4}@&>7u<BCH(f}*!?}+$=g!QXr^0ylFv{g@Mz&meZ+{EMKC@!lh-2G?I8Uy^ z0v5n6;f5cufY+HTeB%GvU&rNR@9Kgi#Z>M`o&KpWr*v7)344Tija&i=Yp{g3vj~Zp zM4o6=iGbDF2s~Fywf<4BmGZ`bFifQ%btC1<REt~PW0l>U!XSmA(kUG=Wn&F?XG|(| zFlpKN0zR1d10gsV@+!>Z8?QkD9dQpud=__5!m<`xu22TGDHA=pXrx*%I%}=sNNYkF zZP|nk3}w}FxzaL~#2u?B#Yq&q_#v-XHi?Y0@k(%>n+(52dky*o&z-}u-l3Pg@&!x` f%U&m$$xPrnJ{U`mBNPzhxu5{QtPMRoCeMBW)^%2& diff --git a/Code_objets/__pycache__/Trajectory.cpython-310.pyc b/Code_objets/__pycache__/Trajectory.cpython-310.pyc index 074bc8f3824d01f6628aa6e2931e66119f1012d4..6e420dad93b877411490387262f423ac887e6b80 100644 GIT binary patch delta 1136 zcmbVM&1(}u6rb76=6jPi&9|ioEn<XfmC}k-rM2}Sv{XG54<a#>h9sL!I=exO2|*&5 zi;4^=^wO+o)e4FqM-PH{_2fb0Um$p>7eS=xd)p7NP!H}fkKerad++^r-m-6oSBKTI zs(J}L55IrNExl0h`WgzHJg{ZhMpPoiByDPu+eay3lu4RYlIxVB*TLi(wIskw!Fhws zQRZOEb+_qik%HUwfb}+MQ<@-6YDb+rMVX7andhdXMK1apvxE@`tfowf?mk3}vCGg7 z*Lm1E0wlkwv{fvRjS{2~K+L>|EU7Nlq;}9Eb&2`vGDNzJ<rZmo*Ca+0q$V?8jKqmW zArfl$Fuz5a8Ye}<fmQIa29OvnI`}e_2{XEx1}X5Sm_9=OqwGdi<Lag;zPeph%of$y zrV41FYE#te-=ZL8o2Z@2{;R6--gKFsngqk56XWDUs1B1T_}dXPT9ayy1Y9{@A0i9p zX~8(=e=u^6qyp2N!e^4A9pBlsUYt#HJ+J4)J5{3@F&LPk$Hlckr0)c9_&zjIG%+;e zU@{0!ir0aDe@E7{CLaVxDki=Lb{$UY)ly~QK&7lL=;cyAt=X_@<~4(l0<GgW@}-KF zoy%)xmUkq*B6bI>afL^)sLfEcykTZL61&33#7eNYYd?g%)DLT#_O3aVS097@5}g!3 zyN@|fW7@PB4ejZgL3jp@ie^fbLq%$cFQGMhOMLFR0~y6|vKJX0H-jE&J(J~5IHu(F z_BmmN`{+IKHvF9C#JsCVNkVi{v?AYVUR0xlN)gUWVkOE#8lWc|c_qMHw-eC)SR9G* zC@SkXjCpSIA&d{8so11Ez^CF<Y(<>{l#<rF57{w%i)Z3dygk4%0q3+nEScMmEd!#r zf}9I8age?g4-)s2sF9-%j(xa&ExQp#v4Jp>dudoKCMSDsg<hk2slv;dtYPp|$ig28 PH^r~ys4^0wj^BR(ng$Wa delta 1084 zcmbVMO=uHA6rQ)cNs~=BiTO_~D%gWPlvdCR(uzMVh}5>|p?Hwec9J$fO_SMe>mebB z2rWVp87O$MyL!+TM2ZJNdhqDUgC~h1c&-Npul~H3(poAaxXXNeZ{GLbd^5A`m)@;j zW6m&ihR;Iz_4LxFvFfX97<qB1I8497n8j>x*xl1WOyOXudCgHUQuD4QmIbbG^|r@y zFSC4`<w5i|prH(~2DGx;-?H4r-Mno@TV~_>7~@RCx1rX7l{_bz*|!M5=)HksnxV*N zskWcm(?ThhH;8i&F-NIE73_e+YQViU1v5d@S!Q;q3S3XIs=~bqmShfK=8zrcJ_ooz z$qG!MDzB4<>jh0X)jHS_uJ4v%3GS52&#?b*YcA}X659t&B@URXw_KrYpQ~-$+dflR za=_HT+y2?rd}X;UPZjX8V1V5W*Hm27XLm%cSQV;j3XhzQkC=n^>ELx#zH)Y*bsEF+ zlTn08IUE>;ez_Ki9XW>|i#S0LCrA)nK$s+QQN9gyToHi0sg^R9=t0&QZ+aFdL@8IA zHk*N|32SO*d@uH!x!H0tlg$;ajA$yQa?^KhqEr~$(aVwGd_)s5>gOuvOe@n=_$_f> zeh9V)$b=377>4#AZtb}z)S<wD><ah0FJnermF4j9&<N2{0)t>kJ_;8=$YA6<tVknz z4=dK9X&99+qv>N=l+Ze}IcsNkzqfc6Q>*e@^ciGjr7hx0V|-t3#XiG~T#xs-@)$pm zALBe+K(?;7Jc}Z7G21Gj>Bq8|5OH$X)Xa*o#3{;m5zMtjGe|e2Ke+)z@<sBfi`+kz z?~`^{g+z3&E$CE5Yhn*@VlOEw@=2;2Hs!n2!w~rrw6>t$Vnp6aUxJ8ylOAku`OwYz b$+DQ6%9y4YBnABpgekiZ_qlq*p#A&>SLg<c diff --git a/Code_objets/__pycache__/UI.cpython-310.pyc b/Code_objets/__pycache__/UI.cpython-310.pyc index d24001918bbdac43b390957180891882d316a121..d26ef227592781f64a23482cc23af63b687e5f37 100644 GIT binary patch delta 137 zcmdmNe88ADpO=@50SK0UJeOWPk=MqBIf|K)A%!7@F^46J#hoFAC55$xA%(S>DT+0P zF_=M<?IlRLpC;oiu7Jd%#N5=9)S_Y_k2@egGp{7R03<fqkXv-)oHG(~Y(-)~#YId& Z;ub4dK@l@ZKpjM|Og5AhpFB-c766<JBXs}( delta 104 zcmX?LyxEvHpO=@50SKhsPozgr<h8M5ieh49NMT4}%wdjVc4tUoNnveaNMUVeiegD& z3}(<|dkIqRr^$GWD<H8bF*mg&wWt`#V-3j9%q!X0`%r?LwMY!8q=*SfOm2{L008rY B8C(DW diff --git a/Code_objets/__pycache__/VideoManager.cpython-310.pyc b/Code_objets/__pycache__/VideoManager.cpython-310.pyc index 96cd74133fa8fe645feb42105a8e077505bfff2f..5d76ee88c89b7894e9d867b2fa10899bd4c1b2e7 100644 GIT binary patch delta 746 zcmZvZL5tHs6vyXHCe2ur+E~}Ex*K;7i)7VBVGANfSv`ng4_Z;ELI|65w`<yzNxHC0 zMM1wn8Sp6W!GmW%fCs(m2guQb7Z2h$a9*~or5KpsWb)qo&wKy8v)@##*s_X5Js<vj z-}ybVHf<WwuGZ3k1SEinwb<xU1L~u3trnPXNs9+oleneKe9{TRxZ(HwoltBul$buc z+Hu`gEBPuZJO(D8!fs)x4T-lXKSL9$vO<5YWqJ}1dV#BFED58wKoxNcaX}#i?;{b8 zT-5G^BYka|m7qxFYwgF)qd4nF{((!y5+)b-u^(?c>hy(!5;-pBA<Xmgs~q{By{Kcs zeA3BI;`QRxi}ypZq2dWuFyXK|JLg6x`SeiV0$7r=aOKi6s%s)l=f%uHKk(DgYYV>{ zUY9=$4_=|%u`AcqVMzAK7$)R7eF@4JnrdUFzEQRGy+Tf-O(*K?(SS6GxU7m?E)2Da zGQvinrl=rt<IdpQg2L1nfjz4B)JQXq*t7k4p`RSwQE3VKUxpPpbfjsV)ANA*#?H&z zMq^>lRF<T1|DK!}t8hYoG1i`~;6>|*tB6fR4RHhUulo4E2u%fWnxv$_2?u_bm$}Am oQ_o|raWq|3ZgHo+iZWR8Kdp?{yKyjx!drlX=2XxGB?_nMUy2o$rT_o{ delta 514 zcmZXQJxjw-6ozw>TYFnlG?ilQryWEhRuC#KB8Y<ucCjMZC4?re#k2`GX+a$woXZ6# z2OT@RI61rc2Qs?4`UAWteo_yd=MLw6&&R!*z0p!`DwUK(<aeJt<x#4pfg?9%OR{7~ z>5(P@X>?eJ+URb*+K_ZLRFAus?bgk{*|AwmLF-o#@y0~%i1eR$5{^LO2AuL2Xuuq= z$ZzvH35jnzZH8JlEf9h+mROOmDf>|1mr7Ai1HV;XH^Z3k4*FI|JjXoOWtK;Aa)`r? zmeciE5nDtkMJ3c3ktfF=$=MznCPiA;H$GeR-N0~%Hd_`dUlvf|qV)H))o<y85!(jH z^ZTilr2<Y;m>o<uRtKJC2DZ^=X3wtj_o)M(rOnL5j>HdKZ;M~k3Q#_#izj8=5m#VU zL=CZl_%;4q$ndY@B7IeWN)%|C&QL|wqKY18`1vf0Sm1i1ltIJ4PTWl7C<PTLq~#B+ CYHp_h diff --git a/test_chargement.py b/test_chargement.py index c8908f8..3283d09 100644 --- a/test_chargement.py +++ b/test_chargement.py @@ -43,7 +43,7 @@ def charger_menu(): print(f"Temps d'exécution : {-(temps - tmp):.6f} secondes") a.mainloop() # Lancer l'application principale - a.destroy() + # --- Lancer le chargement en arrière-plan --- thread = threading.Thread(target=charger_menu) diff --git a/test_chercherdossier.py b/test_chercherdossier.py index b38b987..4b59e22 100644 --- a/test_chercherdossier.py +++ b/test_chercherdossier.py @@ -1,11 +1,39 @@ import os import sys +import time +import threading +import os +import sys +from tkinter import Tk, Label +from PIL import Image, ImageTk # Installer Pillow si nécessaire : pip install pillow + +# --- Création du Splash Screen --- +splash = Tk() +splash.overrideredirect(True) # Enlever la barre de titre + +# Charger l'image +image = Image.open("LogoSymbole_canard.png") +photo = ImageTk.PhotoImage(image) + +# Définir la taille et centrer +screen_width = splash.winfo_screenwidth() +screen_height = splash.winfo_screenheight() +img_width, img_height = image.size +x_pos = (screen_width - img_width) // 2 +y_pos = (screen_height - img_height) // 2 +splash.geometry(f"{img_width}x{img_height}+{x_pos}+{y_pos}") + +# Afficher l'image +label = Label(splash, image=photo) +label.pack() +splash.update() # Mise à jour de l'affichage base_dir = os.path.dirname(os.path.abspath(__file__)) -dossier_path = os.path.join(base_dir,'Code_objets') +dossier_path = os.path.join(base_dir,'Objet') sys.path.append(dossier_path) -import Menu -a = Menu.App() +import menu +a = menu.App() +splash.destroy() a.mainloop() diff --git a/test_multithrading_logo.py b/test_multithrading_logo.py index 57a1d5a..6d58413 100644 --- a/test_multithrading_logo.py +++ b/test_multithrading_logo.py @@ -3,20 +3,17 @@ from PIL import Image, ImageTk import threading import time - - -# Fonction pour afficher le splash screen def show_splash(): - global splash # Garder une référence à la fenêtre + global splash, photo splash = tk.Tk() - splash.overrideredirect(True) # Enlever la barre de titre + splash.overrideredirect(True) # Charger l'image - image = Image.open("LogoSymbole_canard.png") # Remplace par ton logo + image = Image.open("LogoSymbole_canard.png") photo = ImageTk.PhotoImage(image) - # Définir la taille et centrer + # Centrer la fenêtre screen_width = splash.winfo_screenwidth() screen_height = splash.winfo_screenheight() img_width, img_height = image.size @@ -24,40 +21,41 @@ def show_splash(): y_pos = (screen_height - img_height) // 2 splash.geometry(f"{img_width}x{img_height}+{x_pos}+{y_pos}") - # Afficher l'image label = tk.Label(splash, image=photo) + label.image = photo # Évite la suppression de l'image par le garbage collector label.pack() - splash.update() - splash.mainloop() # Garde la fenêtre active jusqu'à ce qu'on la ferme + # Lancer le thread du programme principal + global main_thread + main_thread = threading.Thread(target=load_main_program, daemon=True) + main_thread.start() -# Fonction pour charger le programme principal -def load_main_program(): - time.sleep(3) # Simule un chargement + # Vérifier périodiquement si le programme principal est chargé + splash.after(100, check_thread) - # Fermer l'écran de chargement - splash.destroy() + splash.mainloop() +def load_main_program(): + """Charge le programme principal (menu.App), sans interaction directe avec Tkinter.""" import os - import sys + import sys + base_dir = os.path.dirname(os.path.abspath(__file__)) - - dossier_path = os.path.join(base_dir,'Objet') + dossier_path = os.path.join(base_dir, 'Objet') sys.path.append(dossier_path) - import menu + global app + app = menu.App() # Instanciation de l'application +def check_thread(): + """Vérifie si le thread principal a fini de charger le programme.""" + if not main_thread.is_alive(): + splash.destroy() # Fermer le splash + app.mainloop() # Lancer l'application principale dans le thread principal + else: + splash.after(100, check_thread) # Vérifier à nouveau après 100 ms - # Lancer le programme principal ici - a = menu.App() - a.mainloop() - -# Démarrer le splash screen dans un thread -splash_thread = threading.Thread(target=show_splash) -splash_thread.start() - -# Charger le programme principal dans un autre thread -main_thread = threading.Thread(target=load_main_program) -main_thread.start() +# Démarrer le splash screen dans le thread principal +show_splash() -- GitLab