{"id":1589,"date":"2020-01-04T11:13:29","date_gmt":"2020-01-04T11:13:29","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=1589"},"modified":"2020-01-04T11:13:29","modified_gmt":"2020-01-04T11:13:29","slug":"qt-ve-qml-kullanimina-dair-bir-kac-ipucu","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/","title":{"rendered":"QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu"},"content":{"rendered":"<p>Bu yaz\u0131m, QT, \u00f6zellikle de, \u00e7oklu platform (android) i\u00e7in QML kullanan yaz\u0131l\u0131mperver dostlar\u0131m i\u00e7in. Kodunuza ta\u015f de\u011fmesin diye, bir s\u00fcredir geli\u015ftirmekte oldu\u011fum QML uygulamas\u0131n\u0131 geli\u015ftirirken kar\u015f\u0131la\u015ft\u0131\u011f\u0131m s\u0131k\u0131nt\u0131lara ili\u015fkin \u00e7\u00f6z\u00fcmleri ve daha \u00f6nce kulland\u0131\u011f\u0131m baz\u0131 i\u015finizi kolayla\u015ft\u0131racak ipu\u00e7lar\u0131n\u0131 sizler ile payla\u015faca\u011f\u0131m. Ayr\u0131ca ileride unutursam diye kendime de not tabi \ud83d\ude00<\/p>\n<p>QT ve QML yaz\u0131l\u0131mlar\u0131 geli\u015ftirirken bir s\u00fcredir QT Creator kullan\u0131yorum (En son 4.11 s\u00fcr\u00fcm\u00fcne ge\u00e7tim) ve a\u00e7\u0131k\u00e7as\u0131 i\u015fimi fazlas\u0131yla g\u00f6r\u00fcyor. Benzer kabiliyetleri her ne kadar Visual Studio kullanarak da ger\u00e7ekle\u015ftirebilirseniz de (ki olduk\u00e7a uzun bir s\u00fcre ben de kulland\u0131m), \u00f6zellikle android gibi platformlar i\u00e7in QT yaz\u0131l\u0131m\u0131 geli\u015ftirecekseniz, QT Creator kullanman\u0131z\u0131 tavsiye edece\u011fim. Gerek yaz\u0131l\u0131m geli\u015ftirme, gerekse konu\u015fland\u0131rma, ilgili ayarlar QT Creator \u00fczerinden \u00e7ok kolay bir \u015fekilde kotar\u0131labiliyor. Bunun ile birlikte bu, her \u015feyin de g\u00fcll\u00fck g\u00fclistanl\u0131k oldu\u011fu anlam\u0131na da gelmiyor ne yaz\u0131k ki \ud83d\ude42 Daha fazla oyalanmadan, sizler i\u00e7in derledi\u011fim ipu\u00e7lar\u0131na g\u00f6z atal\u0131m. Sizlere aktarmak istedi\u011fimi ip u\u00e7lar\u0131n\u0131, kolay takip edebilesiniz diye alt ba\u015fl\u0131klar halinde sizlere aktar\u0131yor olaca\u011f\u0131m.<\/p>\n<h2><strong><span style=\"color: #0000ff;\">QT Creator S\u00fcr\u00fcmler Aras\u0131 Ge\u00e7i\u015f<\/span><\/strong><\/h2>\n<p>QT Creator ile projenizi geli\u015ftiriyorsunuz ve yeni s\u00fcr\u00fcm\u00fc \u00e7\u0131kt\u0131, buraya kadar her \u015fey g\u00fczel. Yeni s\u00fcr\u00fcm\u00fc kurdunuz, windows \u00fczerinde uygulaman\u0131z\u0131 yeniden olu\u015fturdunuz ve hi\u00e7 bir s\u0131k\u0131nt\u0131 yok lakin art\u0131k yaz\u0131l\u0131m\u0131n\u0131z android \u00fczerinde \u00e7al\u0131\u015fm\u0131yor (windows \u00fczerinde \u00e7al\u0131\u015fan uygulamalarda \u00e7ok s\u0131k buna rastlamad\u0131m a\u00e7\u0131k\u00e7as\u0131, ya\u015fayan var ise bizi de bilgilendirebilir) ve tad\u0131n\u0131z ka\u00e7t\u0131, sebep ne olabilir? Bu ba\u015fl\u0131kta olas\u0131 problemlere ve bunlar\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finize bakaca\u011f\u0131z.<\/p>\n<p>Arkada\u015flar bu s\u0131k\u0131nt\u0131lar\u0131n\u0131nz kayna\u011f\u0131, \u00f6zellikle android i\u00e7in, kullan\u0131lan baz\u0131 alanlar\u0131n art\u0131k kullan\u0131lmamas\u0131, isimlerinin de\u011fi\u015ftirilmesi ya da yeni zorunlu alanlar\u0131n eklenmesinden kaynaklan\u0131yor olabilir. Bu anlamda da en ola\u011fan \u015f\u00fcpheli <strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/developer.android.com\/guide\/topics\/manifest\/manifest-intro\">AndroidManifest.xml dosyas\u0131<\/a><\/span><\/strong>. Bu dosyay\u0131 hen\u00fcz duymam\u0131\u015f olabilirsiniz diye ilgili google ba\u011flant\u0131s\u0131n\u0131 da ekliyorum. Ayr\u0131ca sizleri, bu ve di\u011fer benzeri android kavramlar\u0131n\u0131 aktard\u0131\u011f\u0131m yaz\u0131ya bir g\u00f6z atmaya \u00e7a\u011f\u0131r\u0131yorum:<\/p>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2018\/01\/04\/android-ndk-ile-ugrasirken-dikkat-edilecekler\/\">Android NDK ile u\u011fra\u015f\u0131rken dikkat edilecekler \ud83d\ude42<\/a><\/strong><\/span><\/p>\n<p>Bu dosya Android uygulaman\u0131z ile ilgili \u00e7ok temel bilgileri girdi\u011fimiz ve gerekli izin ve benzeri ayarlar\u0131n\u0131n yap\u0131ld\u0131\u011f\u0131 dosyad\u0131r. Qt creator sa\u011f olsun burada bulunan bir \u00e7ok alan\u0131 daha kolay bir \u015fekilde doldurabilmemiz i\u00e7in bir grafiksel kullan\u0131c\u0131 aray\u00fcz\u00fc arac\u0131l\u0131\u011f\u0131 ile bu dosyaya m\u00fcdahale etmenize olanak sa\u011fl\u0131yor.<\/p>\n<p>Peki bu s\u0131k\u0131nt\u0131y\u0131 nas\u0131l giderece\u011fiz. Bana g\u00f6re en kolay y\u00f6ntem bu dosyan\u0131n silinip ba\u015ftan olu\u015fturulmas\u0131 (tabi \u00f6ncesinde muhakkak bu dosyan\u0131n bir yede\u011finiz al\u0131n\u0131z). Dosyay\u0131 sildik, peki yenisini el ile mi olu\u015fturaca\u011f\u0131z? Elbette hay\u0131r, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek, Qt creator&#8217;\u0131n sizin i\u00e7in bu dosyay\u0131 olu\u015fturmas\u0131n\u0131 sa\u011flayabilirsiniz:<\/p>\n<p>Qt creator i\u00e7erisinden a\u015fa\u011f\u0131daki pencereyi a\u00e7\u0131p, daha sonra &#8220;Create Templates&#8221; diyerek ilgili dosyalar\u0131 olu\u015fturabilirsiniz. Daha sonra olu\u015fturulan <em>AndroidManifest.xml<\/em> dosyas\u0131na \u00e7ift t\u0131klarak gerekli ayarlara tekrar yap\u0131p, uygulaman\u0131z\u0131 yeniden olu\u015fturmay\u0131 deneyebilirsiniz.<\/p>\n<p>Bu arada laf\u0131 a\u00e7\u0131lm\u0131\u015fken, bu ve benzeri di\u011fer bir \u00e7ok ayar\u0131 nas\u0131l yapabilece\u011finize ve uygulamalar\u0131n\u0131z Android \u00fczerinde konu\u015fland\u0131rabilece\u011finize ili\u015fkin detayl\u0131 bilgi i\u00e7in a\u015fa\u011f\u0131daki adrese muhakkak bakmal\u0131s\u0131n\u0131z:<\/p>\n<p><strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/doc.qt.io\/qtcreator\/creator-deploying-android.html\">https:\/\/doc.qt.io\/qtcreator\/creator-deploying-android.html<\/a><\/span><\/strong><\/p>\n<p>Bu arada bu husus ile ilintili oldu\u011funu d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm hata raporuna da a\u015fa\u011f\u0131daki adresten g\u00f6z atabilirsiniz:<\/p>\n<p><strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/bugreports.qt.io\/projects\/QTBUG\/issues\/QTBUG-80444?filter=allissues\">https:\/\/bugreports.qt.io\/projects\/QTBUG\/issues\/QTBUG-80444?filter=allissues<\/a><\/span><\/strong><\/p>\n<h2><span style=\"color: #0000ff;\"><strong>QT Creator \u00c7\u0131kt\u0131 Dizini Uzunlu\u011fu<\/strong><\/span><\/h2>\n<p>QT Creator ile uygulama olu\u015ftururken kar\u015f\u0131la\u015fabilece\u011finiz bir di\u011fer problem ise a\u015fa\u011f\u0131daki gibi hata metinleri ile kendisini g\u00f6sterir:<\/p>\n<pre class=\"lang:c++ decode:true \">aidl.exe E 12-26 23:20:06 2616 23156 io_delegate.cpp:50] \r\nFailed to GetFullPathName(D:\\BlaBlaBla\\build-QMLSocketApplication-Android_for_armeabi_v7a_arm64_v8a_x86_x86_64_Clang_Qt_5_14_0_for_Android-Release\\android<\/pre>\n<p>B\u00f6yle bir hata g\u00f6rd\u00fc\u011f\u00fcn\u00fczde akl\u0131n\u0131za gelecek ilk \u015fey, Qt Creator Android kit ayarlar\u0131 alt\u0131ndaki \u00e7\u0131kt\u0131 dizinine ait yolun uzunlu\u011fu kontrol etmek olmal\u0131.<\/p>\n<p id=\"JAPPWDX\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"587\" class=\"size-full wp-image-1606 aligncenter\" src=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7.png\" alt=\"\" srcset=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7.png 938w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-300x188.png 300w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-768x481.png 768w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-500x313.png 500w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-150x94.png 150w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-400x250.png 400w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-800x501.png 800w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/01\/img_5e0dde8fb0ce7-200x125.png 200w\" sizes=\"auto, (max-width: 938px) 100vw, 938px\" \/><\/p>\n<p>bunun uzunlu\u011funu k\u0131saltt\u0131\u011f\u0131n\u0131zda hatan\u0131n da kayboldu\u011funu g\u00f6receksiniz.<\/p>\n<h2><strong><span style=\"color: #0000ff;\">QML Uygulamas\u0131n\u0131n Android \u00dczerinde Tak\u0131l\u0131 Kalmas\u0131<\/span><\/strong><\/h2>\n<p>Uygulaman\u0131z\u0131 geli\u015ftirdiniz ve bir \u00f6nceki ba\u015fl\u0131klarda anlat\u0131lan s\u0131k\u0131nt\u0131lar\u0131n hepsini de giderdiniz. Yaz\u0131l\u0131m\u0131n\u0131z\u0131 hedef android platformuna y\u00fcklediniz, uygulama a\u00e7\u0131ld\u0131 ama bir hareket yok, hata mesaj\u0131 da yok (g\u00f6r\u00fcn\u00fcrde). Sebebi ne olabilir? Elbette bunun birden fazla sebebi olabilir (\u00f6r. sonsuz d\u00f6ng\u00fc, bloklanm\u0131\u015f bir \u00e7a\u011fr\u0131, vs), ben burada, yeni QT Creator ile peyda olmu\u015f bir problemden bahsedece\u011fim.<\/p>\n<p>Ne yaz\u0131k ki QT Creator 5.14.0 ile birlikte, baz\u0131 \u00f6nemli dosyalar\u0131n ekskik olmas\u0131 sebebi ile, QML uygulamalar\u0131 g\u00f6\u00e7\u00fcyormu\u015f. Bunun ile ilgili hata raporuna a\u015fa\u011f\u0131daki ba\u011flant\u0131dan ula\u015fabilirsiniz:<\/p>\n<p><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/bugreports.qt.io\/browse\/QTBUG-80713\"><strong>https:\/\/bugreports.qt.io\/browse\/QTBUG-80713<\/strong><\/a><\/span><\/p>\n<p>Bu problem \u00e7\u00f6z\u00fclene kadar ise <strong>&#8220;Projects -&gt; Build Settings -&gt; qmake -&gt; Enable Qt Quick Compiler&#8221;<\/strong> se\u00e7ene\u011fini kald\u0131rarak, projelerinizi olu\u015fturabilirsiniz.<\/p>\n<p>Tabi b\u00f6yle kestirme bir \u00e7\u00f6z\u00fcme gidince insan\u0131n akl\u0131na, bu ayara kapay\u0131nca, neleri ka\u00e7\u0131rd\u0131\u011f\u0131m\u0131z sorusu gelebilir. Bu durumda da &#8220;Qt Quick Compiler&#8221; ne i\u015f yapar sorusu gelmesi gayet do\u011fal.<\/p>\n<p>Anlad\u0131\u011f\u0131m kadar\u0131 ile bu yaz\u0131l\u0131m ile, QT quick uygulamalar\u0131 (yani qml dosyalar\u0131), derlenerek nihai \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyan\u0131n i\u00e7erisine g\u00f6m\u00fcl\u00fcyor ve bu sayede QML dosyalar\u0131n\u0131 uygulaman\u0131z ile birlikte ta\u015f\u0131man\u0131za gerek kalm\u0131yor (normalde bu dosyalar\u0131n da \u00e7al\u0131\u015ft\u0131r\u0131labilir dosyan\u0131z ile birlikte sunulmas\u0131 gerekmekte). Bu noktada, \u00e7ok da \u00f6nemli de\u011fil diyebilirsiniz amma \u015fu var ki, bu sayede uygulamalar\u0131n a\u00e7\u0131l\u0131\u015f s\u00fcreleri, olduk\u00e7a k\u0131sal\u0131yormu\u015f. A\u00e7\u0131k\u00e7as\u0131, geli\u015ftirdi\u011fim uygulamalarda, bunun kazand\u0131rd\u0131\u011f\u0131 s\u00fcreyi \u00f6l\u00e7medim ama geli\u015ftiriciler b\u00f6yle bir not d\u00fc\u015f\u00fcyorlar ise, ciddi bir fark oldu\u011fu ortada.<\/p>\n<p>Bu arada bu problem, Qt Creator kullanan yaz\u0131l\u0131mc\u0131lar\u0131n takip etmesi gereken bir sayfan\u0131n da \u00f6nemini ortaya koydu. O da &#8220;<a href=\"https:\/\/wiki.qt.io\/Qt_for_Android_known_issues\"><strong><span style=\"color: #008000;\">Qt for Android known issues<\/span><\/strong><\/a>&#8220;. Bu sayfa QT&#8217;nin android platformu i\u00e7in bilinen s\u0131k\u0131nt\u0131lar\u0131n\u0131 listelemekte ve bu s\u0131k\u0131nt\u0131 da orada, listenin ba\u015f\u0131nda yer al\u0131yor.<\/p>\n<p>Size pek mant\u0131kl\u0131 gelmeyen, ya da, daha \u00f6nce \u00e7al\u0131\u015fan ve g\u00fcncelleme ile \u00e7al\u0131\u015fmayan sorunlar i\u00e7in bu sayfaya g\u00f6z atman\u0131zda fayda var.<\/p>\n<h2><strong><span style=\"color: #0000ff;\">Mobil Cihazlar Girdi Problemi<\/span><\/strong><\/h2>\n<p>Di\u011fer problemlere g\u00f6re, biraz daha detay say\u0131labilecek bir problemden bahsetmek istiyorum.<\/p>\n<p>Problemimiz \u015fu: bir QML uygulamas\u0131 geli\u015ftiriyorum, grafiksel kullan\u0131c\u0131 aray\u00fcz\u00fcnde, kullan\u0131c\u0131dan girdi almak i\u00e7in, bir noktada TextField veya t\u00fcrevi QML tipini kullan\u0131yorum. Yetinmiyorum, bu TextField&#8217;e ili\u015fkin <em>onTextChanged()<\/em> sinyal kotar\u0131c\u0131s\u0131 i\u00e7erisinde de bir tak\u0131m i\u015fler \u00e7eviriyorum (\u00f6rne\u011fin, her iki karakter de bir fazladan &#8220;:&#8221; eklemek ya da girilen de\u011feri s\u00fcrekli kontrol etmek, vb.). Bu noktaya kadar her \u015fey g\u00fczel. Uygulaman\u0131z\u0131 Windows \u00fczerinde \u00e7al\u0131\u015ft\u0131rd\u0131n\u0131z, gayet g\u00fczel \u00e7al\u0131\u015f\u0131yor, sonra art\u0131k hedef platform android i\u00e7in paketinizi olu\u015fturdunuz ve mobil cihaz\u0131n\u0131za uygulamay\u0131 kurdunuz.<\/p>\n<p>Tam o noktada, art\u0131k metin girdi kutular\u0131n\u0131z\u0131n bekledi\u011finiz gibi \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 fark ettiniz. Hemen, &#8220;debug&#8221; etmeye ba\u015flad\u0131n\u0131z ve g\u00f6rd\u00fcn\u00fcz ki, <em>onTextChange()<\/em> hi\u00e7 \u00e7a\u011fr\u0131lm\u0131yor, neden acaba? Hatta\u00a0<em>text\u00a0<\/em>nesnesinin de hi\u00e7 g\u00fcncellenmedi\u011fini fark ediyorsunuz.<\/p>\n<p>Dostlar, benim g\u00f6rd\u00fc\u011f\u00fcm kadar\u0131 ile bu tarz problemlerinin \u00e7o\u011funun kayna\u011f\u0131, telefonlarda kullan\u0131lan klavyeler. Bu klavyelerin \u00e7o\u011fu, ya tamamlama ya da \u00f6neri alt\u0131nda ek kabiliyetler sunuyor ve bunlar\u0131n kullan\u0131lmas\u0131 durumunda ise, girilen metin <em>text<\/em> nesnesi g\u00fcncellenmiyor ve do\u011fal olarak da,\u00a0<em>onTextChange() <\/em>sinyal kotar\u0131c\u0131s\u0131 da \u00e7al\u0131\u015fm\u0131yor. Dok\u00fcmanlar\u0131 inceledi\u011finizde, bu kabiliyetleri pasifle\u015ftirmek i\u00e7in\u00a0<em>Qt.ImhNoPredictiveText<\/em> \u00f6zelli\u011finin eklenmesinin gerekti\u011fi ifade edilmi\u015f fakat benim ve g\u00f6rd\u00fc\u011f\u00fcm kadar\u0131 ile bir \u00e7ok kullan\u0131c\u0131n\u0131n problemini bu \u00e7\u00f6zm\u00fcyor (hatta bunun ile ilgili de bir <strong><a href=\"https:\/\/bugreports.qt.io\/browse\/QTBUG-68583\">hata raporu mevcut<\/a><\/strong>).<\/p>\n<p>Bu problem i\u00e7in elimde iki \u00e7\u00f6z\u00fcm var:<\/p>\n<ul>\n<li>\u0130lki, hedef platformda, klavye ayarlar\u0131ndan, bu tarz ek \u00f6zellikleri kapatmak. Bunu yaz\u0131l\u0131msal olarak yap\u0131l\u0131p\/yap\u0131lmad\u0131\u011f\u0131ndan emin de\u011filim ama illaki yap\u0131labiliyordur. Bu yakla\u015f\u0131m her ne kadar bu problemi \u00e7\u00f6z\u00fcyor olsa da hedef platforma m\u00fcdahale gerektirdi\u011finden pek tercih edilmeyebilir.<\/li>\n<li>\u0130kincisi is\u00a0<em>displayText\u00a0<\/em>ve\u00a0bu nesne ile ilintili\u00a0<em>onDisplayTextChanged\u00a0<\/em>sinyal kotar\u0131c\u0131s\u0131n\u0131n kullan\u0131lmas\u0131.\u00a0<em>text<\/em> nesnesinden farkl\u0131 olarak,\u00a0<em>displayText<\/em> nesnesi biraz \u00f6nce bahsetmi\u015f oldu\u011fum klavye eklentilerinden etkilenmiyor ve ne g\u00f6r\u00fcyorsan\u0131z, bu de\u011fi\u015fken i\u00e7erisinde tutuluyor. Bu sebeple\u00a0<em>text<\/em> nesnesi ile yapabilece\u011finiz her \u015feyi bunu kullanarak bir oktaya kadar yapabilirsiniz.<\/li>\n<\/ul>\n<p>Bu noktada akl\u0131n\u0131zda bir soru i\u015fareti belirmi\u015f olabilir. \u015e\u00f6yle ki: mobil cihaz\u0131mda bu yaz\u0131 tamamlama ve benzeri \u00f6zellikleri kullansam da, eninde sonunda bu\u00a0<em>text<\/em> nesnesi girdi\u011fim metin ile g\u00fcncellenmesi gerekmiyor mu? Aynen, gerekiyor ve bu da genelde, mobil cihaz\u0131n\u0131n \u00fczerinden bir \u015fekilde girilen metni onaylad\u0131\u011f\u0131n\u0131zda (ki samsun note 9 da bunun i\u00e7in bir d\u00fc\u011fme beliyor, baz\u0131 durumlarda da bunu otomatik olarak yap\u0131yor), o zaman bu sinyal kotar\u0131c\u0131s\u0131 (<em>onTextChanged())\u00a0<\/em> ve\u00a0<em>text\u00a0<\/em>nesnesi g\u00fcncelleniyor. Metin kutular\u0131n\u0131z\u0131n ara s\u0131ra \u00e7al\u0131\u015f\u0131yor oldu\u011funu size d\u00fc\u015f\u00fcnd\u00fcren de bu davran\u0131\u015f olabilir.<\/p>\n<p>Ba\u015fta belirtti\u011fim problem i\u00e7in, yukar\u0131daki yakla\u015f\u0131mlar\u0131n, bir \u00e7ok durumda i\u015finizi g\u00f6rece\u011fini d\u00fc\u015f\u00fcn\u00fcyorum. Farkl\u0131 bir \u00e7\u00f6z\u00fcm\u00fc her zaman burada bizimle payla\u015fabilirsiniz.<\/p>\n<h2><strong><span style=\"color: #0000ff;\">Platform Ba\u011f\u0131ml\u0131 QML Davran\u0131\u015f\u0131<\/span><\/strong><\/h2>\n<p>Son ba\u015fl\u0131k alt\u0131nda her ne kadar bir problem olmasa da baz\u0131 durumlarda problem haline gelebilecek bir ihtiya\u00e7tan bahsetmek istiyorum.<\/p>\n<p>QT bizlere, platform ba\u011f\u0131ms\u0131z alt yap\u0131 sunsa da, yaz\u0131l\u0131m\u0131n\u0131z\u0131n, bir noktada farkl\u0131 platformlar i\u00e7in farkl\u0131 davran\u0131\u015flar sergilemesini isteyebilirsiniz. \u00d6rne\u011fin, bir PC ya da Mac ile mobil versiyonunun farkl\u0131 davranmas\u0131n\u0131 isteyebilirsiniz. Peki, bunu nas\u0131l sa\u011flayaca\u011f\u0131z?<\/p>\n<p>Burada iki \u00e7\u00f6z\u00fcmden bahsedece\u011fim, elbette farkl\u0131 \u00e7\u00f6z\u00fcmler olacakt\u0131r ama a\u00e7\u0131k\u00e7as\u0131 bana en kolay gelenler bunlar.<\/p>\n<ul>\n<li>\u0130lki biraz dolayl\u0131 bir \u00e7\u00f6z\u00fcm. E\u011fer, QML uygulaman\u0131z ile birlikte C++ kullan\u0131yorsan\u0131z, C++ s\u0131n\u0131flar\u0131n\u0131z i\u00e7erisinde #ifdef yap\u0131lar\u0131n\u0131 kullanarak platform ba\u011f\u0131ml\u0131 kodlar\u0131 yaz\u0131p daha sonra bu s\u0131n\u0131f\u0131 QML \u00fczerinden kullanarak, farkl\u0131 platformlara hizmet edebilirsiniz,<\/li>\n<li>Bir di\u011fer y\u00f6ntem ise C++ kullanmasan\u0131z da, QML i\u00e7erisinde kullanabilece\u011finiz bir y\u00f6ntem. Bu y\u00f6ntemde <strong><a href=\"https:\/\/doc.qt.io\/qt-5\/qml-qtqml-qt.html#platform-prop\">Qt qml tipini<\/a><\/strong> kullan\u0131yoruz. Bu tip i\u00e7erisinde bulunan <em>platform.os\u00a0<\/em> nesnesi ile, kodun \u00e7al\u0131\u015ft\u0131\u011f\u0131 platforma ili\u015fkin bilgi elde edebilirsiniz. Hemen \u00f6rnek bir koda bakal\u0131m birlikte:<\/li>\n<\/ul>\n<pre class=\"lang:c++ decode:true \">if(Qt.platform.os === \"android\"){\r\n    \/\/ Androide ozgu davranislari buraya ekleyebilirsiniz\r\n}\r\nelse{\r\n    \/\/ Diger platformlar icin ise buraya\r\n}<\/pre>\n<ul>\n<li>\u00a0Desteklenen b\u00fct\u00fcn platformlar ise:\n<ul>\n<li>&#8220;android&#8221; &#8211; Android<br \/>\n&#8220;ios&#8221; &#8211; iOS<br \/>\n&#8220;tvos&#8221; &#8211; tvOS<br \/>\n&#8220;linux&#8221; &#8211; Linux<br \/>\n&#8220;osx&#8221; &#8211; macOS<br \/>\n&#8220;qnx&#8221; &#8211; QNX (since Qt 5.9.3)<br \/>\n&#8220;unix&#8221; &#8211; Other Unix-based OS<br \/>\n&#8220;windows&#8221; &#8211; Windows<br \/>\n&#8220;winrt&#8221; &#8211; WinRT \/ UWP<\/li>\n<\/ul>\n<\/li>\n<li>\u00a0Bu nesne \u00fczerinden ula\u015fabilece\u011finiz di\u011fer bilgiler i\u00e7in ilgili ba\u011flant\u0131ya muhakkak bir g\u00f6z at\u0131n\u0131z.<\/li>\n<\/ul>\n<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bir yaz\u0131m\u0131n daha sonuna geldim. Bir sonraki yaz\u0131mda g\u00f6r\u00fc\u015fmek dile\u011fiyle, kendinize \u00e7ok iyi davran\u0131n ;)<\/p>","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131m, QT, \u00f6zellikle de, \u00e7oklu platform (android) i\u00e7in QML kullanan yaz\u0131l\u0131mperver dostlar\u0131m i\u00e7in. Kodunuza ta\u015f de\u011fmesin diye, bir s\u00fcredir geli\u015ftirmekte oldu\u011fum QML uygulamas\u0131n\u0131 geli\u015ftirirken kar\u015f\u0131la\u015ft\u0131\u011f\u0131m s\u0131k\u0131nt\u0131lara ili\u015fkin \u00e7\u00f6z\u00fcmleri ve daha \u00f6nce kulland\u0131\u011f\u0131m baz\u0131 i\u015finizi kolayla\u015ft\u0131racak ipu\u00e7lar\u0131n\u0131 sizler ile payla\u015faca\u011f\u0131m. Ayr\u0131ca ileride unutursam diye kendime de not tabi \ud83d\ude00 QT ve QML yaz\u0131l\u0131mlar\u0131 geli\u015ftirirken bir&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":1308,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[10,166,41],"tags":[55,665,667,243,666,671,670,663,510,471,647,668,669,664,129],"class_list":["post-1589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c","category-ipucu","category-modern-c","tag-android","tag-androidmanifest-xml","tag-bug","tag-guideline","tag-issues","tag-ondisplaytextchanged","tag-ontextchanged","tag-problems","tag-qml","tag-qt","tag-qt-creator","tag-qt-creator-kit","tag-qt-quick-compiler","tag-tips","tag-update"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[:tr]QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu[:en]A few tips on using QT and QML[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Bu yaz\u0131m, QT, \u00f6zellikle de, \u00e7oklu platform (android) i\u00e7in QML kullanan yaz\u0131l\u0131mperver dostlar\u0131m i\u00e7in. Kodunuza ta\u015f de\u011fmesin diye, bir s\u00fcredir geli\u015ftirmekte oldu\u011fum QML uygulamas\u0131n\u0131 geli\u015ftirirken kar\u015f\u0131la\u015ft\u0131\u011f\u0131m s\u0131k\u0131nt\u0131lara ili\u015fkin \u00e7\u00f6z\u00fcmleri ve daha \u00f6nce kulland\u0131\u011f\u0131m baz\u0131 i\u015finizi kolayla\u015ft\u0131racak ipu\u00e7lar\u0131n\u0131 sizler ile payla\u015faca\u011f\u0131m. Ayr\u0131ca ileride unutursam diye kendime de not tabi \ud83d\ude00 QT ve QML yaz\u0131l\u0131mlar\u0131 geli\u015ftirirken bir... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-04T11:13:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2019\/07\/Qt-e1580417103404.png\" \/>\n\t<meta property=\"og:image:width\" content=\"30\" \/>\n\t<meta property=\"og:image:height\" content=\"23\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"yaz\u0131l\u0131mperver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"yaz\u0131l\u0131mperver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu\",\"datePublished\":\"2020-01-04T11:13:29+00:00\",\"dateModified\":\"2020-01-04T11:13:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\"},\"wordCount\":1984,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"android\",\"androidmanifest.xml\",\"bug\",\"guideline\",\"issues\",\"onDisplayTextChanged\",\"onTextChanged\",\"problems\",\"qml\",\"Qt\",\"Qt creator\",\"QT Creator Kit\",\"Qt Quick Compiler\",\"tips\",\"Update\"],\"articleSection\":[\"C++\",\"\u0130pucu\",\"Modern C++\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\",\"name\":\"[:tr]QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu[:en]A few tips on using QT and QML[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2020-01-04T11:13:29+00:00\",\"dateModified\":\"2020-01-04T11:13:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.yazilimperver.com\/#website\",\"url\":\"https:\/\/www.yazilimperver.com\/\",\"name\":\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"description\":\"Payla\u015fmak g\u00fczeldir.\",\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.yazilimperver.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\",\"name\":\"yaz\u0131l\u0131mperver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"contentUrl\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"caption\":\"yaz\u0131l\u0131mperver\"},\"logo\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[:tr]QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu[:en]A few tips on using QT and QML[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/","og_locale":"tr_TR","og_type":"article","og_title":"[:tr]QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu[:en]A few tips on using QT and QML[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Bu yaz\u0131m, QT, \u00f6zellikle de, \u00e7oklu platform (android) i\u00e7in QML kullanan yaz\u0131l\u0131mperver dostlar\u0131m i\u00e7in. Kodunuza ta\u015f de\u011fmesin diye, bir s\u00fcredir geli\u015ftirmekte oldu\u011fum QML uygulamas\u0131n\u0131 geli\u015ftirirken kar\u015f\u0131la\u015ft\u0131\u011f\u0131m s\u0131k\u0131nt\u0131lara ili\u015fkin \u00e7\u00f6z\u00fcmleri ve daha \u00f6nce kulland\u0131\u011f\u0131m baz\u0131 i\u015finizi kolayla\u015ft\u0131racak ipu\u00e7lar\u0131n\u0131 sizler ile payla\u015faca\u011f\u0131m. Ayr\u0131ca ileride unutursam diye kendime de not tabi \ud83d\ude00 QT ve QML yaz\u0131l\u0131mlar\u0131 geli\u015ftirirken bir... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2020-01-04T11:13:29+00:00","og_image":[{"width":30,"height":23,"url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2019\/07\/Qt-e1580417103404.png","type":"image\/png"}],"author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu","datePublished":"2020-01-04T11:13:29+00:00","dateModified":"2020-01-04T11:13:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/"},"wordCount":1984,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["android","androidmanifest.xml","bug","guideline","issues","onDisplayTextChanged","onTextChanged","problems","qml","Qt","Qt creator","QT Creator Kit","Qt Quick Compiler","tips","Update"],"articleSection":["C++","\u0130pucu","Modern C++"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/","name":"[:tr]QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu[:en]A few tips on using QT and QML[:] - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2020-01-04T11:13:29+00:00","dateModified":"2020-01-04T11:13:29+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2020\/01\/04\/qt-ve-qml-kullanimina-dair-bir-kac-ipucu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"QT ve QML Kullan\u0131m\u0131na Dair Bir Ka\u00e7 \u0130pucu"}]},{"@type":"WebSite","@id":"https:\/\/www.yazilimperver.com\/#website","url":"https:\/\/www.yazilimperver.com\/","name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","description":"Payla\u015fmak g\u00fczeldir.","publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yazilimperver.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb","name":"yaz\u0131l\u0131mperver","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/","url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","contentUrl":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","caption":"yaz\u0131l\u0131mperver"},"logo":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/1589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/comments?post=1589"}],"version-history":[{"count":16,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/1589\/revisions"}],"predecessor-version":[{"id":1624,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/1589\/revisions\/1624"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media\/1308"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=1589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=1589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=1589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}