From 8e5928677b75c788b6a8568aeab5920ad156db8f Mon Sep 17 00:00:00 2001 From: Akos Kemenes Date: Mon, 2 Dec 2019 22:09:40 +0100 Subject: [PATCH 1/3] Kemenes_Akos snippet --- .../image/AUT_logo.png | Bin 0 -> 2342 bytes snippets/0221_QtQmlJavascriptImage/index.md | 43 ++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 snippets/0221_QtQmlJavascriptImage/image/AUT_logo.png create mode 100644 snippets/0221_QtQmlJavascriptImage/index.md diff --git a/snippets/0221_QtQmlJavascriptImage/image/AUT_logo.png b/snippets/0221_QtQmlJavascriptImage/image/AUT_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d47ff3803ffea7f292be9a59ee0fbec706a9df86 GIT binary patch literal 2342 zcmZuzXH*l&8jXOFDn+CO14tA^N@xiRQi6nlD@c1Rh+sen0i>5ur0P;PQq&btObCy% z)I=jSC<=xMBFzL}z#s=?L5LJ-aVZ=1ocHqM{g|2aedoJ(?ssSAoXK@|LP?2(!~p<+ zl!LvkD}P<#4|h=@f2O_f2;naWVq8%+fTp*{7Wjck5W*1w08k1fcKi5&03iB@gDt{6 z!IxV;J+j^+b?dp@6`Ko@V*1BV{`=P5!o#jM7ox;9Nu}!`coQgg{gzY3Oar@=SyN=5KDPmU?c0gHgQ8MMX=(4y_vK-%ElH}ZwmZYHz|cd( zG>-bO!i%%AtOVYgeP14p(7gAz>{`3dV|=oBnBx-Ls0*@W28DOn#Rw-`y7_v}#7&+Y z+V^qZtNO`7S?u2=1dbr*k;YM|+>e`V;y z5VS00bwWW2(J&tUlLF+ag(uS&hZ^Q5X3S$7ZaA>^aMIcx zc=Lsqzninm^eJA3bji-Q`S_-h58b%5rLf5=b7$Qosfw9(?atb4*q0NtNED>}Wq*6~v4Nf+E-b;xhpFh-BUf9n>}wjk zgOBZFa7&~vM;G}Ha43Xb=J76zK9S+`*DJemYzSH>%n2GHUs(_uY}W^Eh^nbr>~9L& zNbra+S5)zVTt|ZgUKRg!w&^!=@BDx@!N%LI{-Q@g(9Z*@h8d77!tw35$i1Shwz1*3 z##*k*waY(!Nee-P(XWb4&Ge~;8bf+H7P^L7qpYWO&mw*g_WN-d95{KyCJT=G4xh?1 zm+~2}V?Tp^$@w8|I~&M4q&I);ZcRbKm#_Dfc#}z}#c^RD-!?gm78H)?ZH_vtOPV3w zXqI7}S#Jhe1g6t-=UXzmKKtRH_-~9wDHtO5R5z?C_2CTbYugaM1Vw*XCH<#T53v)$w1V`A17n;FV`*`cG%ejf- zY}TYWK0mgV&cK~4T6NK{+jp`k#7X}rbT+L0GcUpnambL?ldJqJAr``lVd~ zR~b@lo;l5J*Tw+3gPTxMqNAK4`P*fG%m_zy-~Nke77iA9z%+LQ4VcA~d*6_{EcS{f zWhIwGK5B&BDU4Wdf`I#MlaqHK?GPmnvm2@vbMqXB)uv2s?X&vM>?5@k{TMFF%S-Z{ z!3_VGb0r_~0FovnS-1s$rW zm1J)!UyYz0;&N9DW^bbteieRxw*k-l8)eMlBuES3k7M0D@3$Y17^rG6%gzK)8KxGJGgg0BtvyWlIbCsw+^2 zBo4|L=6th@MhPYZ!m{?nN|cxR)(L18p~^OBC8rbt028+Vxq*m?>(Z48~1L86m_1sI%-6fJumaK{C1#i2|EpI(5^ zmaf&6qsU|<94{x4UWfvHNR61QncNvhTim4^JgwU_|AXD2hf>TywNkJ&9Pq}P)3 z>Q9a$Rzar&R4CF{+X1412yJDc`e`z+X^7Yxw*#srEHh_W-c|P?JwgM!YzPS>>e;Lm` zVQ*Uz&pBt3?cAhx07i;u$GmUS{r6)=4-?IT{sdYcqjqa3lyY*IGmSu|R#_EjJJLu| zsl3d1SGK;-TdEEktriDcc|qROCZVdgz*8Vo75Dq6Z1|}F{cx5KN@2b2z7voM$#a#u zVNja?V8KFY*CkJ*rff=tso_6a<|%dKRH;Nh4XJ~e$#)WFM&=@5D;Y%OQ3_*yGkq>9 z7&rXTn^Ft3l%dwX8LDCIdlTEQu#cLIdt9u`kUkOPQq(&CfXJh=51N?j!I|CJ84B*b z8e`@{W%pUF)-i~FB52#-v7*U@l~9?==;`72_G=}Tx_l@JH*HrPFFZIxI>i_xU3V4^ zsxJ}I!?eU79E{UyB!RZohy5{m8^0X(T2~cXaipZ4`5;_|s?Gyo5l>>})*c4A_nb~S zVnWb8`bsXzDy`pn?!GJ11)xDVO4xSJAf3unPTkqI`u2zaJE&8mJpUU5a6mfQHrb#v F{{f`gf35%k literal 0 HcmV?d00001 diff --git a/snippets/0221_QtQmlJavascriptImage/index.md b/snippets/0221_QtQmlJavascriptImage/index.md new file mode 100644 index 0000000..ef827bc --- /dev/null +++ b/snippets/0221_QtQmlJavascriptImage/index.md @@ -0,0 +1,43 @@ +--- +layout: default +codename: QtQmlJavascriptImage +title: Qt Qml image insert to canvas +tags: snippets +authors: Kemenes Ákos +--- + +# Kép beszúrása grafikonra javascript segítésével + +Amennyiben szükségesnek ítéljük, hogy egy gráfra (canvasra) képet tegyünk, és esetleg dinamikusan változtassuk, akkor a QML egy javascript alapú megoldást kínál. +Ahhoz, hogy képünk megjelenjen, elég csak a QML-ben szokásosan használt + +```cpp +Image{ + id: image1 + visible: false + source: 'cat.png' + } +``` +kódsort használni, azonban ha ezt formázni, mozgatni és változtatni is szeretnénk ahhoz egy kicsitvel több kódra van szükség. +Ahogy a fenti kódon látszik, a láthatóság hamisra van állítva. Ez azért szükséges, mert nem ezt a tag-et szeretnénk megjelníteni, csupán csak ebből a képből egy példányt, de módosítva. +Térjünk is a lényegre, az Image{}-el létrehoztuk a képet, megjeleníteni pedig így tudjuk: + +```cpp +var context = getContext("2d"); +context.drawImage(image1, 0, 0, 100, 100); +``` +Ez a kód már javascript, ezáltal ha több funkcióra lenne szükséged, minthogy a kép méretét, pozícióját, vagy magát a képet változtatod, célszerű javascript megoldásokat keresni, mert QML címszóval én nem sok eredményre jutottam. + +Jelen esetben a ``context`` nevű változónk egy ``CanvasRenderingContext2D`` típusú objektum mely rengeteg lehetőséget biztosít a 2D megjelenítés sok területén. + +A fenti drawImage függvény lehetséges verziói: +```cpp +void ctx.drawImage(image, dx, dy); +void ctx.drawImage(image, dx, dy, dWidth, dHeight); +void ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight); + +``` +Ez a három lehetőség nyílik kép kirajzolására, én a második verziót használtam. +A property-k leírása, és sok egyéb hasznos ezzel kapcsolatos dolog a dokumentációban olvasható amelyet itt találsz: + +[Dokumentáció](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage) From 816a66950a33ffc70b14c5b8a046d29e4e224dff Mon Sep 17 00:00:00 2001 From: Akos Kemenes Date: Tue, 10 Dec 2019 16:09:57 +0100 Subject: [PATCH 2/3] Kemenes_Akos snippet --- snippets/0221_QtQmlJavascriptImage/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snippets/0221_QtQmlJavascriptImage/index.md b/snippets/0221_QtQmlJavascriptImage/index.md index ef827bc..f1e6553 100644 --- a/snippets/0221_QtQmlJavascriptImage/index.md +++ b/snippets/0221_QtQmlJavascriptImage/index.md @@ -2,7 +2,7 @@ layout: default codename: QtQmlJavascriptImage title: Qt Qml image insert to canvas -tags: snippets +tags: snippets qt qml authors: Kemenes Ákos --- From 1ddec07b792cf8afa0058103a543e0873f96db77 Mon Sep 17 00:00:00 2001 From: Akos Kemenes Date: Sun, 15 Dec 2019 10:04:25 +0100 Subject: [PATCH 3/3] =?UTF-8?q?AppMakers=20csapat=20h=C3=A1zi=20tanuls?= =?UTF-8?q?=C3=A1gok=202019?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- snippets/AlkFejlHfTanulsagok/40/index.md | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 snippets/AlkFejlHfTanulsagok/40/index.md diff --git a/snippets/AlkFejlHfTanulsagok/40/index.md b/snippets/AlkFejlHfTanulsagok/40/index.md new file mode 100644 index 0000000..d2b0d41 --- /dev/null +++ b/snippets/AlkFejlHfTanulsagok/40/index.md @@ -0,0 +1,36 @@ +# AppMakers csapat tanulságai # +### Segmentation fault a program indulásakor ### + +A Qt programunk futtatásakor rögtön az elején SIGSEGV-t dobott, még meg sem jelent semmi. Debugger csak annyit mondott, hogy az alkalmazás .exec(); -ig jut el, a többi a qt library-n belül van, ahonnan a jogosulatlan memória hivatkozás történt. [Stackoverflow](https://stackoverflow.com/questions/47330449/qt-segmentation-fault-at-exec) segített végül: a QApplication construktorának az argc referencia szerint kell (ez valóban le van írva a [dokumentációjában](https://doc.qt.io/qt-5/qapplication.html#QApplication), viszont a [példaprogramban](https://github.com/csorbakristof/alkalmazasfejlesztes/blob/af964ed7e9bf1a8f6c1b1838eb39d9a5491e4f6c/SimpleTelemetryVisualizer/main.cpp#L7) nem így volt). + + QApplication::QApplication(int &argc, char **argv) + +### QML GroupBox: Binding loop detected for property "implicitWidth" ### + +[https://doc.qt.io/qt-5/qml-qtquick-controls-groupbox.html](https://doc.qt.io/qt-5/qml-qtquick-controls-groupbox.html): The implicit size of the GroupBox is calculated based on the size of its content. A GroupBox mérete a tartalma alapján határozódik meg. Azaz a benne lévő dolgok méreteinek meghatározása a GroupBox méretének tudata nélkül kell, hogy kiszámolható legyen. Ezért például nem lehet egy child elemének anchors.left: parent.left és anchors.right: parent.right is. Ha olyat akarsz, hogy a szülő határozza meg a tartalma méretét, akkor ne GroupBox-ot használj! + + +### QML GroupBox title ### + +Ha QML-ben egy GroupBox-nak nem akarod, hogy title-je legyen, akkor se hagyd üresen ezt a paramétert, mert feljebb fog csúszni a tényleges tartalom, kilógva a keretből. Egy szóköz segít: title: " " + +### Kép beszúrása gráfra ### +Ha képet szeretnél beszúrni gráfra és azt később dinamikusan változtatni, akkor azt a következő módon teheted meg: + + Image{ + id: image1 + visible: false + source: 'kiscica.png' + } + +A fenti kód segítségével hozd létre a képet, objektumot és rejtsd el(visible:false), mindezt a canvason belül. Ezután id segítségével tudsz rá hivatkozni és manipulálni: + + context.drawImage(image1, width, height, width, height); + +Mivel ez javascript, ezért rengeteg lehetőséget biztosít különféle módosításokhoz a képpel. +Dokumentáció: [https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage) + +### Doxygen binárisok ### + +Régebbi Doxygen binárisok letöltése: [https://sourceforge.net/projects/doxygen/files/](https://sourceforge.net/projects/doxygen/files/) +(mi linuxon végül a 1.8.11-es verzióval csináltuk).