From 108d68636e53e8a9f667ab9911fce190699e5fa5 Mon Sep 17 00:00:00 2001 From: HuaGouFdog <2506897252@qq.com> Date: Sat, 29 Jun 2024 14:21:50 +0800 Subject: [PATCH] =?UTF-8?q?qss=E6=A8=A1=E5=9D=97=EF=BC=9A=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module_qss/image/Flayout.png | Bin 0 -> 3840 bytes module_qss/image/Glayout.png | Bin 0 -> 4923 bytes module_qss/image/Hlayout.png | Bin 0 -> 2685 bytes module_qss/image/QWidgetQFrame.png | Bin 0 -> 2721 bytes module_qss/image/QWidgetQFrame2.png | Bin 0 -> 2089 bytes module_qss/image/Vlayout.png | Bin 0 -> 3771 bytes module_qss/qss.cpp | 5 + module_qss/qss.ui | 697 +++++++++++++++++++++++++++- 8 files changed, 696 insertions(+), 6 deletions(-) create mode 100644 module_qss/image/Flayout.png create mode 100644 module_qss/image/Glayout.png create mode 100644 module_qss/image/Hlayout.png create mode 100644 module_qss/image/QWidgetQFrame.png create mode 100644 module_qss/image/QWidgetQFrame2.png create mode 100644 module_qss/image/Vlayout.png diff --git a/module_qss/image/Flayout.png b/module_qss/image/Flayout.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc9d7043adc968935308045f6b03d924948f728 GIT binary patch literal 3840 zcmd50=lOly z_x-!@!9Jv$%Mup|1md=H$My&aWCjDcuW^12_&)Rf$VuR51|b3&3Mp^*8U!9@VYltw z27y%2UB?g42A=1f+z~~9K;||(J~Mc@8}Y!+*E_dw`!F4?>D`~8ZhgHK@4t>;%fGid zsbS{QJw>65<}JuQKbn4F4gvS2@9{4Z26My8i-#?U@t}yGI*L~LW#(=B<~$T}ItBu{ zvE2-T+@BAJoJl?B4*AZjZzg0F(lHdD`nxZZA_NcdA;LTk;yRUdT#igb%H#S}0 zLJQwQytB#~>ehGQbBDdfp5VV9Web{{n?GVD&nnKQL$yh$RvTM=77to|7;Uchcsti{ zqtZ_InuIa4!^gD&Q8F~SwRhB$HqjI0)Py9sF&-6BHNj*C!qV`G660|_DWg=%CAUVl zZjSJ$j0Z^s4<=5bCL3Gqn7y6?E8SenWXhS>{L?;x;(~r@0mA3vn?`} z2tOe%s$IAaILLeEg;ttQZzv<)O=WREjBHhZsZ4QW9PAO6`*)H#t-KU+ULFcf&%ELU zIxaKP9B(Mjt1^_-tv`m_lGafeelXH>p(bgP$$#{C6ZIk(G+`5OZCFZjy{W9Ta+y+I zCpDJ+&_T|`ldqo(hYfVIq$AN;mks2Qa&|w9$YEmUo}=gJe6ROdwl5Rc_$Y>i9FgG*0dx|rEx zSvVs5eEi!znoz#?Ll4;8MZZvTeZzQ#jwL(x?W(`S<#N$QMMZ1rbb6ZBVzG>jjD+eA zrGtCAdwtdbFQXhtsCB-dTJS}Q&WzAKyAGWO(|lg;>sO%4TENb$r+t%XrW)gu1Y%qI zNH8*v#_bW?f&_#LI*bvj!EHANlyHvmik`C5uJ&oH(ca6}w>+JS`3u!?m76jk?ZW>< z=sE2)~hdXk@iG3{|Fu1;JM)8}D zG+FM*fJ5=%OCP=gcXxM>6tm`27r{?AR3&?AWtHx&+swy-Gbi>vL0{e@EWU3gK= z7s2(7&GDIJjc1ww8)PNOy}%ONQ9D}kd`j<}!%)jOm3B6*R=J_aT8rOzjy|viUL4{n zAsFFVBUg1%LRUt5fkw$zrKl#^Nd>GQs8~C4yhkY13m@jg>ga)9za9b5D!T&)^+?1A z8%;xKRj0%t-Bcq@IY8QwmS&uZeORbF z(UPpOMsP%l6g3NbqE=z(I-fBG5^34t2N4OusJNS}F~(K`vey!S>J;N+zEM`^<(J%i z8}!F64f`nZhkp~;O%Uq2qPgeQeG9aTGMRL;Wlthta^T1Zn z+4l?G$6(NZQeT2C%k^sZrqP3{0&kBdrxjqKFK1jfW^OccHi}zJQnANb;NXbaoNg*& zF#LgwlD#Qss#IQ`;s6r=l}dOvZ8`* zF@4V27`200Cd1-AK6WiMnM{185^JryO2+VhMh8}pk-QJhnhG=AR}(l66!6$v6s_8x zLPRd6dk46H_%^chMAni1?C*nNYl)@>)58hPKJ~i(i{6ZBI+^D{I0w7{pm@`TasK@I z(j+dXud!(tlk+1F+AiMT;j;yq;0d6njsQ54h4>ly?*Rz^ufxXdGpgm%)Nx z`(mMF_)%iYS`=NfQZh3VCn8HaNcDRMAB;8mEW<7>jm4=n0FK78^b`)0%<#t|*u7HW z5l-)b3XT>^B9w1r)-pPIOXsG7u!GW4NCs)@?!m}sIL={H?I zH(-pi^5F%Ez>)KdOOh9RfDFRSrpHoyx{2DT(xV~myi*)a)ZU*=)_&uTISgW3O)^JO zGqFl#BE{f<+9RQO)5!AaY30m<`JfF4D?FF~!ei2e!YX;_???u~ANN)(m%XyyEQQ%Z zgKga6=^z7|VRGex`iH4bV=c6^v)9Ywzj!ns{tTtNeHfa**{oJl28mR+1rC>Tlu9KZ zxQ^)B*1JFDKX^Rt$MLXPZS>I?AX|<^{B2aeMFcSQmCJX=g9IA^WL^1o0HU4X&>cJH z{FP}p3NQbW45TS%UfA3CJ#77*=%)>hjd5@U;)&=%&r;Z2W8Jk9k?N0on^^jlJ!ev{ z{|bFhTgZ_;73*AqKfi?igIYXbxX4JPCrKj3yuFt6` z8+VCK`i;7utW~=z)HYf_kP}n<4)?V`uaI`j;$5g`K$+3K^Mps2NF?GvdGbV|*XxHv z5QsQ58tuI7@AT(LhLW)0x#a|@&zPsL8 zv+OuTt+E-hK29lnJ@>HIegBQatDgk@)Krk(YxVbftDjPH7rvhdee^xYka4;#u3;NCCpd+#nVRZh1i-%wf-i)GxuGagu6N%;q!JnQ0~hGg%^*GpjP?x@)C$#LW0N@YKAU9Wtq4aPbM zw^ay;(cDWRs@;z1=zGu6#?emg!wQ(Y^G*0?0ksqMuphEW22a=>{Z$8G{==81LZV!T~s$#hml?#>pe{@?GAORx)3ncnkT73sumsD#)OdO(TN- z?#C%oDXVURbT1I?wmU)Ijw=%~B(aG-ybE=8V@F8_qfa{GOV;m<{ngdg3D_se z|xc^ zZpb36$s#Pp;OaH4@WgvzP<(%4!B1pibRoqGHF8C`r%n5X{y|TL_{famX*QEe-6Gxm z+kV`79^8osP}s18EMe64>$EHn~ZJaVe;L|FIQ|j@!v8oX| zENsv#P|DwGSxm%PLZ^f;mWtou6#lqtV$|}T(!1#dJY}}Om297tW!}~74!)#w))FaA zP~Zq3k6FgsON$oy(v_9`%1xos8&<(>xi(Zv!X(wmsVq74Wcv;DNU*vW<`* z;GqulFGJt1PaNpmmdLe21z4Ql^5|vnt(%&o5zHSC`f0WvCq@xIjvCRt6ohMJN|*@o z5Zg&VrCdZu&SmVd*s;ntSEI9-ZkGLZuX|Y(e;_tC(%IR$&0yFBKS3mJiiwHwPw3i; zlV_4B+8W&@_F4NyfOo9hUF!LULf==e7~JXDl!>c6r_H;)CyRpK)_%hiL!57BtXJtpT)@HSNs-JRp}1tDmQGYw>d$=ySuMO3n?T>C&|cXj104&FIz*zap5# zV1#{(tEz(s7ZKaH7v%HcM&egEp`uk>f5TZA>FjDEy=z%_^2@2`iN-4FRy^@1lUIK& zSigWU{qO(Ni(o1AWu}&@bg|WGsB9*<26#mLBRfO6VIT0z9AbL(+gf>zOO=Ce^lW)grTa^vJOroijvxQgjLt)O(F-lKRAb%)qU8o@ zx3{{;$+D02|Bi3VPo;QQywl?zs9XL^$yKTt_ut&YND5I>T%nSt& zT6OBrDn`E{CrzRTfiR%E9mjk=J>(QAwB%nv!}h^IkSU>F7Dk^wDP5^8H@rJVj{gG{ za`1Ak_Gf*VAVCpdww|ue&(-Cs1SI8yvm_m>fNE*(NC=dQL8bzaD!eH9K$5>U4X7IL zOcm0Kb=Q`>;Gh)#D*3v)IFyV<(Uc(yy?IZa53(=L?%UJJ8yo)ym2KLhxJz!6SWH5ZM40hs+>L|;uuC? zAznyn>tI$Im2YuZDk7mYKNiXAv68I>2YU2U zUYC(!eCp}!QCDB>Sx~bc%Q(}%oRuf$Pz8$q1&hoFA}qljOljM=rlvuiN>-gkn2W)g zVblbsSAE;lr%z9i$+?vAHx2gG%)LiiP$6^cYHRPJ=N>?#Bch_Bz(03+XJ|;{x>fkt z+RcA+vtLjZ;f@b~GuT>()Sin3!NYLivU2_j^g!x{O^S$BAhcq^#Jj`_<@lk(IJ3c< zUhp+yRQLKu+`z_DchD1|lp=k+ze5(&n%r&hYzbU?{!je)7(U0I7=pFAXGw-&OA!A- z+8E|}3hk~|Uv6x8)OTi7dX3|+Oe&}fzaPaam26?4!E6vUk={1&RBwio0hPhgt9F~E*2Q6bUsTV~ z5R>%dAwLb&r)I1PR|Eqy&|KXQI|g*kC6Bun16oTG0K-DlvxXCwgkYR88C&0*^?mEj z11_*(7tb@3zdw|Q%;p3YE1Bb7K=3Rwcw#qmdRXnmn1?}u%kjn)h>MH!>@4U0(8Xam z>ogJ5$GMCLPro1;{RWp&r!>mJ7=ABNW;?Sv6)kl|VYTeyy7Zro{x}N!4l%pr6rDyF zK1>;>R|OTK?MY&2`1FugGUKS#di4U(5Ilo#%V4zWBeCy1;TyLbi9%IAzinSUqQ~21 z&_zhqJ&S2>RQd<7%=!gR=kHXQg^N0sToyMRT^coMG)y(kc)JA!(ujuyrNn+~3d^Ra4|-&{IhMuiv9+IVch)5DBg+AkB=4y`s@mxvz0p z+^ptV1|FT>Dq_ip>ZVjO{(HjAY*RhzLviE4AmTm{JKW*w_n^Euoe%D_uX>06iSW5Y z6bkPrBU<7q@ky5|k0N~^P;@!@$`&f?49Wk?_X5ei%H5)bucZK~G>4X@k$Fymr(|@O=QAX+{nQT zQ+x}E|EzNwH@~I-$48aUUkI@o8G)d?7i-tQpF5n%Tvg1bkX@TB1=mG#cawJO zt6+2?QhQCs`B`?j_tk)=(+3|Wf7dpKKg{GWQK;3miWiM`paeqTRRSMA$0=HSZKe0J zv>EpJo-wn>ZZkJ={MA_B`7FYtijLgBvtfZ!W1AyzJnCdx+Wq-+01p=7@?;E{3#7&% zi;%ZMWsrD#Czf8;-^ulaU3@I#z_XZ%7P)$wtt;7puToNnLcKJd3xQe(bFnZ7q=~ua zm@YfENR5u0@WR&Ch)QhQj+ycR95pD5VABNSA;-pG68$+gW$I>^oZsJ{axpt#)di-nZXXJ10C;x~w5E z(?q0Hi(c0>bc6MW1{<7k4B_B>uV!!yy!sFwE_SaeW!*u__ z3x%0<+iQ(H{=CX3vid0pR09Ff>{M5pe{0*o)$P7i+HYDU<()_%0gJqUwbwM)jXvY{ Z+PtXpZ*EVRUy4COcSLM|u=QZ({{o!n4k7>m literal 0 HcmV?d00001 diff --git a/module_qss/image/Hlayout.png b/module_qss/image/Hlayout.png new file mode 100644 index 0000000000000000000000000000000000000000..5fef44a6acb7263d2ab3a46110cd6881ae7ad7f0 GIT binary patch literal 2685 zcmdT`X;4#F6n-e6B3cy}Y>8lvL0k&$ zpfZF&I*kP(5~?wxK!};NjflxBWoy6yZ3=+^2^s=qd899dy4$M#)6SW<-1WP2&Uepu z&W45J<~Y3X006+8kS)PG0l-Fz{NJ5vkG#Ju%uGf;HpHE{jQ~gL(vLK3!JzFy0B}8b zw&|c9(w>#LWgig$=87zjjX2?IEC4tx2ni0_eIj~D9+b0CyukiIPM=~N9W7ZNSa*8O z^6>2Gr!IW{{Y}C??e5@IDYaxUL~FDfM1y{XgE(_!o;T2Y=PdHp}_6H z#A$c!GMs=<<}rZ8)7`eGW@icY4W5FFN>CN|)Xd>Uey^Nu>j6Z%p>4XS31gu1&v=v8PZ^I=Nfb{FzKr(VddEy{II}O&XaAU?l)21o(ksC-w$; zbf0eXGuI=tdz<~VZ$P}gu)xta5Gr;Qb=S6d_%bA|!d z`a5Z{qZ*x;u=Aaq@*?7suqe+uTcgUOlp)Ualm1b-(Bj1x7yOsQAoe&!HH`E>8tSOZ zP3Wv8Q(?n;4^1cE_zUZ>xjJ9~Oc+p#M4!oOxD}8A6E5j(B!}v5q^e6jX4s`Nj+xzg zbLvNP`$T8n%S|`KV+yRIAqMyJyM91 zz8Y7-#<7^XGN$oF36nTNMDZgBe#Hx?CUrTb!@9kgKq^mn)aah3Rus^rjSy)hsp2r! z4xGp6cV@H<4>z~6iLTHH(TXtyFJvIp7Ltp4ZeE^5wf2;x`=MiMPdwVBlU0nTM}!*g z9jYq;X99*jT}11C}m}jMtQQ zBe9LTqu4N4KjvuagJ=ypki%;~*K<>UnOWu4lqnm4BI9|BVAEwL&r7R?qSJdL*aZ^a zD9u5NT)ysFX;MV|Caje{5HrqE7uT#Gay zORF$8f?TB-IueJ=X*kvl!qf=Aq(S99B7AK^Y8jO4X+FN#I@gmv6q<=pk`mk8pkUA? zrMwjstUqQYa=W_H#28;!egM6UNsi)cq#y@V-Pw2)gX&i{wXIlfz!)f;iBw55RLkj1 zReHC%L}~630{jcf{x`;&P!@;d?3ELBzWX0lr*#!Uk;G&^%N&Op(y+OUD%oRl{e$(m zHou5QsIjXFt|C0&?Nx|}jzs4UT0QQHVzlVX+ggljYA>BNfP(WI%6wyVPxoB}yTJb5 z<~1z3=IL3#mQmAuv}v){AV}<$KCv~*fUfvrKXzP-k(A1U*xUl`4!K@?|6EV<1f>QV zqbsH5bU95f@6)OXz0}>Q6Sa@|@CI{{TuG4-!99}W0`>6`GRcP+Q0|u=y$(4gj--TE zQ>+ZTkMcP9W76-d;YgfkTf1=;8cCNKTHl6aYo6^f1`-5zcN4aq=xk*b^jvwF$$Vmm zhRL?iuDlhKSOW)$CJCD}Nl%n@Q)A$uU=i(u#a)}3?P)jG6jtE&(i-Y$t&?|xtwLD$ zBrl_w+1KaPYXs(raa9XjobMTvG(1o#2$&e{NWd@N)ds>Y9Y+1|aM-AtFuJu(zMqhI@>EN0vdlK+>$!2o09gioro5uGU`8F z^{-U)FT^Y%nT=0I7glJ4FVL$k*3NI1<^3H@?7 literal 0 HcmV?d00001 diff --git a/module_qss/image/QWidgetQFrame.png b/module_qss/image/QWidgetQFrame.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c8ce042d78921d7d7902bd60019e37388d938b GIT binary patch literal 2721 zcmeAS@N?(olHy`uVBq!ia0y~yVAcb&UvRJiNzPXr<^w6l;vjb?hIQv;UIIBR>5jgR z3=A9lx&I`xg47gvL>4nJ@ErzW#^d=bQWzMx%sgEjLn`9l-VMyU<0Zg)VSD|Sjy0Ov zANf9Y960E6KWzI!J+Es&EnH^C1juO2nl1I>|Gj(n{sB!ZS+)a6zSRV}!J#_6@aNap z;eQT?7tM@On|?ACnJPVT6G>$kHv_|kd5@SF7`80OCp`D)Q$O>xxQVBq813}Yn+&Hm zsXxz&VPI(ZCL+$ju)y{x&|?|?g^Uagw}SBrpL z1RC2Q2@9cwgwKqnXQbZ*#v~kUWCF4njMEEuUhbV4juyf|51s^ikb%uiKH&JCgK|e% z#bh*qEXsUZE;ilz?u<%TNL0Sb-1*qz(ew3nr_O5wlS}+u`C^*ZCpXovq)b8MO z$Dk=F;lXNcs`&RzWX!vgi{|+2@#{6oA`HjUp4m2^d0$B`cupC8% z6VD_3c>CQX{m`XAo>1Qo8YKmV>? zZ&Y9Z_1>R1dw>44zF+bRbd%izQ2eujHAu_-cqii{_Vk55E z18GiyvodOKLCT%rdW5)U53EQBs(!DdSH8>ea~DSY3|v1DYK|ef>(1@@{~5zM7WS_> Tu`(Li1Z41Z^>bP0l+XkKQe||H literal 0 HcmV?d00001 diff --git a/module_qss/image/QWidgetQFrame2.png b/module_qss/image/QWidgetQFrame2.png new file mode 100644 index 0000000000000000000000000000000000000000..2167872ac0cb04d53429cf34e0bd9bfb5c3c5265 GIT binary patch literal 2089 zcmeAS@N?(olHy`uVBq!ia0y~yVEPDT-{W8dl3QZqwSg34age(c!@6@aFM%AEbVpxD z28NCO+M1MG6B0`#w(>$B>G+x7RlIGBb)e9elli@!Krx z4W&C>&xi~Auq*7{|Gn0pf#HCxk{km=pCHi2f}Rd`hK6Jp8wLg$}r31F*9rt_~??<=32(@U@hpck`|HjonedcsL*IgjHZdv ztT0+AjFyFiq*nMMZ@l5fb$Nybtu(3;@z=AO@1JvjzqNsD|Bu2NVD--6>FVdQ&MBb@ E04uxB^#A|> literal 0 HcmV?d00001 diff --git a/module_qss/image/Vlayout.png b/module_qss/image/Vlayout.png new file mode 100644 index 0000000000000000000000000000000000000000..11c234e5a6c64898a448490d56cbda2ddd4b360b GIT binary patch literal 3771 zcmdT{YgAH+7RItB&BwGNC(Bo@TWVUQW#t33cV^{d%4bSt;UuMv7zrLxn~W}+cBd4j zlwMY&BIP3^M{VK~<^yJF;v58#}=&f%QB_xJ7Z z+kf}jv)xdCkvgz%0pdTHa-}X(gVxE}fkKsT<^q=ARG*4#8!WFxY2hGLkB*dTQ=^E3mfS4jTF_Hq#QJs8Gr`2x$`cX z{_TM3uw#-g*=2r zhFc~zUX#O)8F9WifU`ltE^n6Uw3$(iABlYc*t!V&YD;$#+<1>e0A3E#yK55PR;98W z#dVP&QQ;mOlWtB=N@126sg57!lY8b{0p~W212!m~$7GvN3P8_u5+>)S(n?+Xy`*1P z0b%00rQ#wvQErBL>Wl|w>_0g#rC;F#%s6B0TbpOhvG$OE`DuYPPKDU@F3uOHin)=- za_qaZ0BuZX+dFg9y^{)8UB7^|qXb^QoUxQ|VX;}JcXOyc;2-sUeg<||51E#RqVte$XM5(?rZVAsJsL~0B8)RkQ==PC z9RRP3n-J@5Q1;6Z)nStvSy#fj){oK$PgTB%+Uqjg5Dy%;K_!P#5DT)dKiHYbbbBlC z)r9i!0AWe_rRGi{k%z_=Gp@-yphCih^vJq`ag`I;v53MnE5~R!UT*Ymo9cCN`lGB=L=}Qz z8%FI)tO&#LSR)KQ%}s4YS*Bng(`&FMgy{@+Dgdw>&u7=y*E5?gV~oc>4&*02AtUB(tUIjH`t$Kb#g7e{TN{F8V?)jj-{bn_ zx({A0{T=-L8=yWCnC`s1Z<{IZNS(7?wFQbCq$VINAau);codut>)s460imjXiTcDq zxQwAN>fis&tftc@ym*&$1gDh^uJ+>H6V3mnAoahcbg~-&m6k1uU6jrho!DRo`=O$u z!XZ4r|C$BI`oiOg5Os3ieI{=KAQbS#z>g=91`z(Fv*r5NN!Vp=I$U_TUH4xz{A7UnPs zp~SZ@h>gx5uVOhIy_n*Cpq@kRq6*+2vSAwQeNgdJVt0#oUc0qHj0t{^N}gdrmCACZ zdPH5Nn$s6-iW!Wfu`2v&o=t>{EKztzX!KZP zhGI=r$Fm$XWQW?o-%%QopZQq-P8)m2KzjyZd}txX+bRWtOm08@lxG~7Wm|c7SXYdP zxMqQx+bfky?+ORWw{Kf}h!qM#9D$(NM{L&g^ut-q4+OB)GhM%OqLNtOdL!smR>`@) z0&IUryr!i|L|uHOA=4K8gH`DQc~C0FZphukmc^MFk!M4CTg6~z+`SSRG6qey%nO#L{$qk|N+LTSSo|BS^Q&K1JimQ-zSESaGV^#8< z(t_6fH$q1172In8yGg@&qAkkqOmCNLEiRg|_TtTvnTL(C^6wz!&&ck?H8DOAZ0Iu0RvN8<)KdY?JBr2E1T0nccB2 zhFsCN8_bN7o;`p5Jo}#CxKD=0Zg~WECjfv!tMuf97g0%RM_vJ_3{$VZ?J~8Kv<2`^ zlPZ<{SrZ>ZVxncuzTS3rIOL$5TK`UvV7R~A0g~J) zz(5Ky<-fEh%1f62*bg2c8O#KQF4|CYIs$PsD~6^F;VZDbawjEW%CStzpQP$8( z3XqA7tozH~vpUby5jn-X(cT~^Xzu7FPLf^+4iHI27(Am*i{6O>*Z-3pQyaE25!>aR zCK`K9Q{$fodA!p#jgDHGg|yrB=y*|?U!cx{_=P_pl@5@>oz}N}bkt4j)gi0f6&o8J zk9;MN%+HR0w@Y}CTFO1DtE-Ka6QnpIamL|1I-N|VQqlSA8!cY>{*kU9au9DuhY2}$ zsoC!V=|s!c&$LieHf%awS^arvU%G_z2ateKsd_@|6hHjTHEDX)n)08{%D%I+hAhN& p*>;7wQ$`53j{NZrPYe#Z3&QxJwHRAhXyJr;Zr!t`c+-K?{{nNjWXAvi literal 0 HcmV?d00001 diff --git a/module_qss/qss.cpp b/module_qss/qss.cpp index d625bba..b6d8c91 100644 --- a/module_qss/qss.cpp +++ b/module_qss/qss.cpp @@ -136,3 +136,8 @@ void qss::on_listWidget_currentRowChanged(int currentRow) { ui->stackedWidget_select->setCurrentIndex(currentRow); } + +void qss::on_listWidget_qss_currentRowChanged(int currentRow) +{ + ui->stackedWidget_qss->setCurrentIndex(currentRow); +} diff --git a/module_qss/qss.ui b/module_qss/qss.ui index 45e20a9..63d582d 100644 --- a/module_qss/qss.ui +++ b/module_qss/qss.ui @@ -35,16 +35,22 @@ border-image: url(:/lib/back1.png); - 200 + 300 0 - 200 + 300 16777215 + + + OPPOSans B + 10 + + #widget_left{ border-image: url(:/lib/back2.png); @@ -110,7 +116,7 @@ QScrollBar::up-arrow:vertical { 0 0 - 180 + 280 641 @@ -125,12 +131,192 @@ QScrollBar::up-arrow:vertical { - 通用 + QSS通用属性 + + + + + 窗口:QWidget/QFrame + + + + + 垂直布局:QVerticalLayout + + + + + 水平布局:QHorizontalLayout + + + + + 网格布局:QGridLayout + + + + + 表单布局:QFormLayout + + + + + 堆栈布局:QStackedLayout + + + + + 流体布局:QFlowLayout + + + + + 标签:QLable + + + + + 滑杆:QSlider + + + + + 菜单:QMenu + + + + + 文本框:QTextEdit + + + + + 计数盒:QSpinBox + + + + + 组框:QGroupBox + + + + + 滑动条:QScrollbar + + + + + 工具盒:QToolBox + + + + + 单选框:QCheckBox + + + + + 进度条:QProgressBar + + + + + 工具按钮:QToolButton + + + + + 列表控件:QListWidget + + + + + 树型控件:QTreeWidget + + + + + 多标签控件:QTabWidget + + + + + 下拉菜单栏:QComboBox + + + + + 单项按钮:QRadioButton + + + + + 滚动容器:QScrollArea + + + + + 多文档容器:QMDIArea - 按钮 + 堆栈窗口:QStackedWidget + + + + + 停靠窗口容器:QDockWidget + + + + + 带说明文本按钮:QCommandLinkButton + + + + + 对话框按钮组:QDialogButtonBox + + + + + 控件添加阴影 + + + + + 无边框窗口创建 + + + + + 自定义菜单 + + + + + 托盘显示 + + + + + 打包技巧 + + + + + 更换图标 + + + + + 中文乱码 + + + + + 更换字体 @@ -148,7 +334,7 @@ QScrollBar::up-arrow:vertical { - 0 + 7 @@ -1167,8 +1353,507 @@ p, li { white-space: pre-wrap; } + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans B + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans B'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">窗口:<span style=" color:#005500;">QWidget</span>/<span style=" color:#005500;">QFrame</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#000000;">可以直接在设计师界面直接拖动到界面</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#005500; background-color:#ffffff;">QWidget</span><span style=" background-color:#ffffff;">这个类是所有窗口类的父类, 可以作为独立窗口使用, 也可以内嵌到其它窗口中使用。</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#005500; background-color:#ffffff;">QFrame</span><span style=" background-color:#ffffff;">就是一个升级版的</span><span style=" color:#005500; background-color:#ffffff;">QWidget</span><span style=" background-color:#ffffff;">, 它继承了</span><span style=" color:#005500; background-color:#ffffff;">QWidget</span><span style=" background-color:#ffffff;">的属性, 并且做了拓展, 这种类型的容器窗口可以提供边框, 并且可以设置边框的样式、宽度以及边框的阴影。</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" background-color:#ffffff;">可以认为</span><span style=" color:#005500; background-color:#ffffff;">QFrame</span><span style=" background-color:#ffffff;">比</span><span style=" color:#005500; background-color:#ffffff;">QWidget</span><span style=" background-color:#ffffff;">多了一个边框</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" background-color:#ffffff;">设计师界面效果图如下:</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/module_qss/image/QWidgetQFrame.png" /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">左侧是<span style=" color:#005500;">QFrame</span>,右侧是<span style=" color:#005500;">QWidget</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" background-color:#ffffff;">编译后界面效果图如下:</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/module_qss/image/QWidgetQFrame2.png" /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">由于<span style=" color:#005500;">QWidget</span>没有边框,背景是白色,所以看不出来。</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">一般情况下<span style=" color:#005500;">QWidget</span>要常用于<span style=" color:#005500;">QFrame</span>,<span style=" color:#005500;">QWidget</span>+<span style=" color:#005500;">布局</span>用好了,可以很轻松的制作界面。</p></body></html> + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">垂直布局:<span style=" color:#005500;">QVerticalLayout</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">使用了垂直布局,加进去的组件自动在垂直方向上分布。</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">可以直接在设计师界面直接拖动到界面</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">在设计师界面,拖动一个<span style=" color:#005500;">QVerticalLayout</span><span style=" color:#000000;">,接着在拖动几个按钮放在里面,可以看到按钮在垂直方向均匀分布,并且伸缩垂直布局的时候,按钮也会跟着均匀伸缩。</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/module_qss/image/Vlayout.png" /></p></body></html> + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">水平布局:<span style=" color:#005500;">QHorizontalLayout</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">使用了垂直布局,加进去的组件自动在垂直方向上分布。</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">可以直接在设计师界面直接拖动到界面</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'OPPOSans B'; color:#000000;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">在设计师界面,拖动一个<span style=" color:#005500;">QHorizontalLayout</span><span style=" color:#000000;">,接着在拖动几个按钮放在里面,可以看到按钮在水平方向均匀分布,并且伸缩垂直布局的时候,按钮也会跟着均匀伸缩。</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/module_qss/image/Hlayout.png" /></p></body></html> + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">网格布局:<span style=" color:#005500;">QGridLayout</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">使用了垂直布局,加进去的组件自动在垂直方向上分布。</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">可以直接在设计师界面直接拖动到界面</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">在设计师界面,拖动一个<span style=" color:#005500;">QGridLayout</span><span style=" color:#000000;">,接着在拖动几个按钮放在里面,可以看到按钮类似网络一样均匀分布,同其他布局一样,伸缩表单布局的时候,布局内控件也会跟着均匀伸缩。</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/module_qss/image/Glayout.png" /></p></body></html> + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">表单布局:<span style=" color:#005500;">QFormLayout</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">表单布局可以理解为网格布局的一个分支,水平方向只能添加两个组件,垂直方向可以添加多个,类似表单。</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">可以直接在设计师界面直接拖动到界面</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">在设计师界面,拖动一个<span style=" color:#005500;">QFormLayout</span><span style=" color:#000000;">,接着在拖动几个按钮和标签放在里面,可以看到像网格布局一样分布,但是水平方向组件数量最大为2,同其他布局一样,伸缩表单布局的时候,布局内控件也会跟着均匀伸缩。</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/module_qss/image/Flayout.png" /></p></body></html> + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">堆栈布局:<span style=" color:#005500;">QStackedLayout</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">不可以直接在设计师界面直接拖动到界面,但是可以通过代码创建</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'OPPOSans B'; color:#000000;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">堆栈布局用于管理多个子窗口或者页面的堆叠显示,和<span style=" color:#005500;">QStackedWidget</span>组件很相似,如果只是将页面堆叠并切换显示,可以直接用<span style=" color:#005500;">QStackedWidget</span>,但这个布局有一点很有趣,就是可以同时显示堆叠的组件。</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'OPPOSans B'; color:#000000;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">使用堆栈布局,并同时显示堆叠组件</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'OPPOSans B'; color:#000000;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">//添加头文件</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">#include &lt;</span><span style=" color:#005500;">QStackedLayout</span><span style=" font-family:'OPPOSans B'; color:#000000;">&gt;</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'OPPOSans B'; color:#000000;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'OPPOSans B'; color:#000000;">//创建一个堆栈布局对象</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#005500;">QStackedLayout</span> * <span style=" color:#aa0000;">layout</span> = new <span style=" color:#005500;">QStackedLayout</span>;</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">//设置显示模式为全部显示</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">layout</span>-&gt;setStackingMode(<span style=" color:#005500;">QStackedLayout</span>::<span style=" color:#aa0000;">StackAll</span>);</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">//添加需要叠加显示的组件</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">layout</span>-&gt;addWidget(<span style=" color:#aa0000;">pushButton1</span>);</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">layout</span>-&gt;addWidget(<span style=" color:#aa0000;">pushButton2</span>);</p></body></html> + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + OPPOSans + 10 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'OPPOSans'; font-size:10pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">流体布局:QFlowLayout</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qt并不内置这个布局,不可以通过设计师界面拖动使用,但是官方直接给出了流体布局的代码,我们加进自己的项目后,就可以通过代码创建。</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">前面所有的布局在缩放的同时,其内部组件跟着缩放,而流体布局内的组件会根据布局的缩放,进行调整,这个调整并不是调整组件自身大小,而是自身位置,例如原来布局水平有10个按钮,当水平方向缩放布局,显示不下的按钮会在第二行显示,故而称之为流体布局。</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">新建<span style=" color:#005500;">flowLayout.h 头文件,flowLayout.cpp cpp文件 </span>并直接复制下面代码即可使用。</p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#005500;">flowLayout.h 头文件</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#ifndef FLOWLAYOUT_H</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#define FLOWLAYOUT_H</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#include &lt;QLayout&gt;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#include &lt;QRect&gt;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#include &lt;QStyle&gt;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">class FlowLayout : public QLayout</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">public:</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> explicit FlowLayout(QWidget *parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> ~FlowLayout();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> void addItem(QLayoutItem *item) override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int horizontalSpacing() const;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int verticalSpacing() const;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> Qt::Orientations expandingDirections() const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> bool hasHeightForWidth() const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int heightForWidth(int) const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int count() const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QLayoutItem *itemAt(int index) const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QSize minimumSize() const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> void setGeometry(const QRect &amp;rect) override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QSize sizeHint() const override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QLayoutItem *takeAt(int index) override;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">private:</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int doLayout(const QRect &amp;rect, bool testOnly) const;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int smartSpacing(QStyle::PixelMetric pm) const;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QList&lt;QLayoutItem *&gt; itemList;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int m_hSpace;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int m_vSpace;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">};</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#endif</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#005500;">flowLayout.cpp cpp文件</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#include &lt;QtWidgets&gt;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">#include &quot;flowlayout.h&quot;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">FlowLayout::FlowLayout(QWidget *parent, int margin, int hSpacing, int vSpacing)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> : QLayout(parent), m_hSpace(hSpacing), m_vSpace(vSpacing)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> setContentsMargins(margin, margin, margin, margin);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">FlowLayout::FlowLayout(int margin, int hSpacing, int vSpacing)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> : m_hSpace(hSpacing), m_vSpace(vSpacing)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> setContentsMargins(margin, margin, margin, margin);\n}\n\nFlowLayout::~FlowLayout()</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QLayoutItem *item;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> while ((item = takeAt(0)))</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> delete item;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">void FlowLayout::addItem(QLayoutItem *item)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> itemList.append(item);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">int FlowLayout::horizontalSpacing() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (m_hSpace &gt;= 0) {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return m_hSpace;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> } else {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return smartSpacing(QStyle::PM_LayoutHorizontalSpacing);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> }</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">int FlowLayout::verticalSpacing() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (m_vSpace &gt;= 0) {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return m_vSpace;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> } else {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return smartSpacing(QStyle::PM_LayoutVerticalSpacing);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> }</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">int FlowLayout::count() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return itemList.size();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">QLayoutItem *FlowLayout::itemAt(int index) const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return itemList.value(index);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">QLayoutItem *FlowLayout::takeAt(int index)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (index &gt;= 0 &amp;&amp; index &lt; itemList.size())</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return itemList.takeAt(index);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> else</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return 0;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">Qt::Orientations FlowLayout::expandingDirections() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return 0;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">bool FlowLayout::hasHeightForWidth() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return true;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">int FlowLayout::heightForWidth(int width) const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int height = doLayout(QRect(0, 0, width, 0), true);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return height;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">void FlowLayout::setGeometry(const QRect &amp;rect)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QLayout::setGeometry(rect);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> doLayout(rect, false);</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">QSize FlowLayout::sizeHint() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return minimumSize();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">QSize FlowLayout::minimumSize() const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QSize size;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QLayoutItem *item;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> foreach (item, itemList)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> size = size.expandedTo(item-&gt;minimumSize());</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> size += QSize(2*margin(), 2*margin());</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return size;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">int FlowLayout::doLayout(const QRect &amp;rect, bool testOnly) const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int left, top, right, bottom;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> getContentsMargins(&amp;left, &amp;top, &amp;right, &amp;bottom);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QRect effectiveRect = rect.adjusted(+left, +top, -right, -bottom);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int x = effectiveRect.x();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int y = effectiveRect.y();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int lineHeight = 0;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QLayoutItem *item;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> foreach (item, itemList) {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QWidget *wid = item-&gt;widget();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int spaceX = horizontalSpacing();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (spaceX == -1)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> spaceX = wid-&gt;style()-&gt;layoutSpacing(</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Horizontal);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int spaceY = verticalSpacing();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (spaceY == -1)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> spaceY = wid-&gt;style()-&gt;layoutSpacing(</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Vertical);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> int nextX = x + item-&gt;sizeHint().width() + spaceX;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (nextX - spaceX &gt; effectiveRect.right() &amp;&amp; lineHeight &gt; 0) {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> x = effectiveRect.x();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> y = y + lineHeight + spaceY;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> nextX = x + item-&gt;sizeHint().width() + spaceX;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> lineHeight = 0;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> }</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (!testOnly)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> item-&gt;setGeometry(QRect(QPoint(x, y), item-&gt;sizeHint()));</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> x = nextX;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> lineHeight = qMax(lineHeight, item-&gt;sizeHint().height());</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> }</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return y + lineHeight - rect.y() + bottom;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#aa0000;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">int FlowLayout::smartSpacing(QStyle::PixelMetric pm) const</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">{</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QObject *parent = this-&gt;parent();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> if (!parent) {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return -1;</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> } else if (parent-&gt;isWidgetType()) {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> QWidget *pw = static_cast&lt;QWidget *&gt;(parent);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return pw-&gt;style()-&gt;pixelMetric(pm, 0, pw);</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> } else {</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> return static_cast&lt;QLayout *&gt;(parent)-&gt;spacing();</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;"> }</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#aa0000;">}</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#000000;">使用方法:</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#005500;">FlowLayout</span><span style=" color:#aa0000;"> </span><span style=" color:#000000;">*</span><span style=" color:#aa0000;">flowLayout </span><span style=" color:#000000;">= new</span><span style=" color:#aa0000;"> </span><span style=" color:#005500;">FlowLayout</span><span style=" color:#000000;">(</span><span style=" color:#aa0000;">10,15,15</span><span style=" color:#000000;">);</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#005500;"><br /></p></body></html> + + + + + + + 0 + + + 0 + + + 0 + + + 0 +