nesimia.comAna Sayfa | Son 10 Girdihttp://www.nesimia.comtrSoru / Cevap – 1http://feedproxy.google.com/~r/nesimia/~3/UcoJgDQ3QYc/soru-cevap-1Mon, 16 Feb 2009 14:13:08 +0200<p><strong>Konu :</strong> Basit bir g&ouml;sterge yapmak.</p> <div align="center"><img alt="qt ibre g&ouml;sterge grafik" src="http://www.nesimia.com//files/sc/qt/ibre/ekrangoruntusu.jpg" /></div> <p>&nbsp;</p> <p><br /> <strong>Soru :</strong> Basit bir ibre &ccedil;izip projeye dahil ettim, fakat bir t&uuml;rl&uuml; d&ouml;nd&uuml;rme işlemini yapamıyorum. Daha &ouml;nce belirttiğiniz QPainter sınıfını da kullandım ama sonu&ccedil; alamadım. Yardım ederseniz sevinirim.<br /> <strong> G&ouml;nderen :</strong>&nbsp; R. D.<br /> <br /> <strong>Cevap:</strong> Arkadaşımızın isteği &uuml;zerine k&uuml;&ccedil;&uuml;k bir &ouml;rnek hazırladım. İşin mantığını kavramak ve benzer &ouml;rnekler yapmak isteyenler i&ccedil;in faydalı olacağını d&uuml;ş&uuml;n&uuml;yorum.</p> <p><em><strong>ibre.cpp</strong><br /> </em><br /> #include &lt;QtGui&gt;<br /> #include &quot;ibre.h&quot;<br /> <br /> ibre::ibre(QWidget *parent)<br /> &nbsp;&nbsp;&nbsp; :QWidget(parent){<br /> <br /> &nbsp;&nbsp;&nbsp; donusAcisi = 0;<br /> &nbsp;&nbsp;&nbsp; setBackgroundRole(QPalette::Base);<br /> <br /> }<br /> <br /> ibre::~ibre(){<br /> <br /> }<br /> <br /> void ibre::dondur(int derece){<br /> <br /> &nbsp;&nbsp;&nbsp; &nbsp; donusAcisi = derece;<br /> &nbsp;&nbsp;&nbsp; &nbsp; update();<br /> <br /> }<br /> <br /> void ibre::paintEvent(QPaintEvent *){<br /> <br /> &nbsp;&nbsp;&nbsp; QPainter painter(this);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; <font color="#339966">//SmoothPixmapTransform : donus sirasinda resim kalitesinin bozulmamasi icin</font><br /> &nbsp;&nbsp;&nbsp; painter.setRenderHint( QPainter::SmoothPixmapTransform );<br /> <br /> &nbsp;&nbsp;&nbsp; QImage imgIbre(&quot;ibre90saatYonu.png&quot;);<br /> <br /> <font color="#339966">&nbsp;&nbsp;&nbsp; /* x = (width() / 2) ve y = (height() / 2) noktalarinda, yani sayfanin tam ortasında <br /> &nbsp;&nbsp;&nbsp;&nbsp; * yeni bir koordiant sistemi olustur. <br /> &nbsp;&nbsp;&nbsp;&nbsp; * Boylece x=0, y=0 noktalarina cizilen her cizim sayfanin tam ortasinda olur.<br /> &nbsp;&nbsp;&nbsp;&nbsp; */ </font><br /> &nbsp;&nbsp;&nbsp; painter.translate( width() / 2, height() / 2);<br /> <font color="#339966"><br /> &nbsp;&nbsp;&nbsp; //Aciklama asagidaki &quot;save(); &amp; restore();&quot; kisminda</font><br /> &nbsp;&nbsp;&nbsp; painter.save();<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /> <font color="#339966">&nbsp;&nbsp;&nbsp; /*<br /> &nbsp;&nbsp;&nbsp;&nbsp; * dondurme islemi resmin ortasindan degilde kucuk dairenin ortasindan yapilmali. <br /> &nbsp;&nbsp;&nbsp;&nbsp; * X noktasi icin; resmi, genisligi kadar beri getirip, arti olarak dairenin yari capini ekliyorum. <br /> &nbsp;&nbsp;&nbsp;&nbsp; * Ornegin: genişlik = 100px, yaricap = r = 10px olsun, d&ouml;nd&uuml;rme yapilacak koordinat (0,0) dır.<br /> &nbsp;&nbsp;&nbsp;&nbsp; * X = -100 + r b&ouml;ylece X noktasi kucuk dairesinin tam ortasina konumlanmis olur,<br /> &nbsp;&nbsp;&nbsp;&nbsp; * Y noktasi icin; yaricap kadar da yukari (eksi) kısma cıkarak Y noktasi <br /> &nbsp;&nbsp;&nbsp;&nbsp; * kucuk dairenin ortasina konumlanmis olur.<br /> &nbsp;&nbsp;&nbsp;&nbsp; * <br /> &nbsp;&nbsp;&nbsp;&nbsp; * Not: kucuk dairenin yaricapini, resmin y&uuml;ksekliğinin yarisini alarak elde ettim. Tam olcum icin<br /> &nbsp;&nbsp;&nbsp;&nbsp; * dairenin altindaki ya da ustundeki bosluklarin olmamasi veya esit olmasi gerek.<br /> &nbsp;&nbsp;&nbsp;&nbsp; * <br /> &nbsp;&nbsp;&nbsp;&nbsp; */</font><br /> <font color="#339966"><br /> &nbsp;&nbsp;&nbsp; //girilen aci degerinde dondurme islemini yap.</font><br /> &nbsp;&nbsp;&nbsp; painter.rotate( donusAcisi + 2.5 ); <font color="#339966">// +2.5'luk bir deger daha ekleyerek ibre ucu ile sayilari ortaliyorum.<br /> </font> <br /> &nbsp;<font color="#339966">&nbsp;&nbsp; //ve ibreyi ciz</font><br /> &nbsp;&nbsp;&nbsp; painter.drawImage( -(imgIbre.width()) + (imgIbre.height() /2 ), -(imgIbre.height() /2 ), imgIbre);<br /> &nbsp; <br /> <font color="#339966">&nbsp;&nbsp;&nbsp; /* <br /> &nbsp;&nbsp;&nbsp;&nbsp; * save(); &amp; restore(); Bu iki fonksiyonun arasinda yapilan cizimleri bir katman gibi dusunebilirsiniz.<br /> &nbsp;&nbsp;&nbsp;&nbsp; * Eger ibreyi dondurme kodlarini bu iki fonksiyon arasina yazmasaydim, <br /> * sayilarlarda ibre ile birlikte donerdi.<br /> &nbsp;&nbsp;&nbsp;&nbsp; * İste bu yuzden, bu iki fonksiyon arasini bir katman, diger kisimlari farkli bir katman yaptim.<br /> &nbsp;&nbsp;&nbsp;&nbsp; */</font><br /> <br /> &nbsp;&nbsp;&nbsp; painter.restore();<br /> <br /> &nbsp;&nbsp;&nbsp; <font color="#339966">//Sayilari ciz</font><br /> &nbsp;&nbsp;&nbsp; sayilariCiz(painter, imgIbre.width());<br /> <br /> &nbsp;&nbsp;&nbsp; <font color="#339966">//koordinat sistemini eski haline getir. (Geri al. x=0, y=0 en ust olur.)</font><br /> &nbsp;&nbsp;&nbsp; painter.translate( -(width() /2), -(height() / 2) );<br /> <br /> }<br /> <br /> void ibre::sayilariCiz(QPainter &amp;p, int ibreGenisligi){<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <br /> &nbsp;&nbsp;&nbsp; for (int n=0; n&lt;=180; n+=10){<br /> <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p.drawText( (-ibreGenisligi - 20), 0, QString::number(n));<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p.drawText( (-ibreGenisligi + 5), 0, &quot;-&quot;);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p.rotate(10);&nbsp;&nbsp;&nbsp; <br /> <br /> &nbsp;&nbsp;&nbsp; }<br /> }</p> <p><strong>Kaynak Kod :</strong> <a href="http://www.nesimia.com/files/sc/qt/ibre/ibre.zip">ibre.zip</a></p> <p><a href="http://feedads.g.doubleclick.net/~a/6LUKFnfFV7s1s5YVH8EHhl4jOe8/0/da"><img src="http://feedads.g.doubleclick.net/~a/6LUKFnfFV7s1s5YVH8EHhl4jOe8/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/6LUKFnfFV7s1s5YVH8EHhl4jOe8/1/da"><img src="http://feedads.g.doubleclick.net/~a/6LUKFnfFV7s1s5YVH8EHhl4jOe8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/UcoJgDQ3QYc" height="1" width="1"/>http://nesimia.com/blog/soru-cevap-1http://nesimia.com/blog/soru-cevap-1Bu Dua'ya Amin Diyelimhttp://feedproxy.google.com/~r/nesimia/~3/re58TD97OM8/bu-duaya-amin-diyelimTue, 06 Jan 2009 13:17:03 +0200<p>Okulların &ccedil;ıkış saatinde bomba yağdıran, namaz esnasında cami vuran, yolda giden ambulansa roket fırlatan, her t&uuml;rl&uuml; insani yardımı engelleyip o insanları bir a&ccedil;ık hava hapishanesinde tutan cesur &uuml;lke(!) aferin sana. <br /> <br /> Ter&ouml;rist diye tabir edip &ouml;ld&uuml;rd&uuml;ğ&uuml;n kişiler bu resimdekiler mi?</p> <p align="center"><img height="500" width="354" border="3" align="middle" alt="filistin cocuklar" src="http://www.nesimia.com/files/upload/image/genel/filistin/cocuklar2.jpg" /></p> <p align="center"><img height="331" width="500" border="3" alt="filistin cocuklar" src="http://www.nesimia.com/files/upload/image/genel/filistin/cocuklar.jpg" /></p> <p>Peki ya bunlar; yolda giden ambulansa fırlattığın roketle &ouml;len doktorlar mı?</p> <p align="center"><img height="351" width="500" border="3" alt="filistin doktor" src="http://www.nesimia.com/files/upload/image/genel/filistin/doktor.jpg" /></p> <p>Bunlarda ellerinde ki ağır silahlar olamalı, değil mi?</p> <p align="center"><img height="382" width="637" border="3" alt="filistin sapan" src="http://www.nesimia.com/files/upload/image/genel/filistin/Filistinde_sapan_tutan_ocuklar.JPG" /></p> <p>&nbsp;</p> <div align="center"><img height="262" width="374" border="3" src="/files/upload/image/genel/filistin/filistinli-cocvuk-tas-resiz.jpg" alt="" /></div> <p>&nbsp;</p> <p>Dualarımız seninle Filistin.<br /> Dualarımız seninle Filistin. <br /> Dualarımız seninle Filistin.</p> <p><br /> &quot;<strong>Bu Dua'ya Amin Diyelim</strong>&quot; :</p> <ul> <li><a target="_blank" href="http://video.google.com/videoplay?docid=5041538914747780607&amp;hl=tr">Google Video - http://video.google.com/videoplay?docid=5041538914747780607&amp;hl=tr</a></li> <li><a target="_blank" href="http://www.youtube.com/watch?v=wrrrhVDjUQg">Youtube - http://www.youtube.com/watch?v=wrrrhVDjUQg</a></li> </ul> <p>&nbsp;</p> <p><a href="http://feedads.g.doubleclick.net/~a/EWKTg5JejS50-tVXYS-3cxexhBQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/EWKTg5JejS50-tVXYS-3cxexhBQ/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/EWKTg5JejS50-tVXYS-3cxexhBQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/EWKTg5JejS50-tVXYS-3cxexhBQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/re58TD97OM8" height="1" width="1"/>http://nesimia.com/blog/bu-duaya-amin-diyelimhttp://nesimia.com/blog/bu-duaya-amin-diyelimOnay Bekleyen Yorumlar Hakkındahttp://feedproxy.google.com/~r/nesimia/~3/NCFMCaN2IqM/onay-bekleyen-yorumlar-hakkindaMon, 05 Jan 2009 19:49:20 +0200<p>D&uuml;n mailleri kontrol ederken, uzun zamandır siteden mail gelmediğini fark ettim. Kontrol panelinden onaylanmamış yorumları inceliyordum ki; onca spam yorumdan sonra, yaklaşık iki aydır onay bekleyen yorumların olduğunu g&ouml;rd&uuml;m. Evet, sitedeki mail g&ouml;nderme fonksiyonundan kaynaklanan bir problem y&uuml;z&uuml;nden, yazdığınız yorumların onayı bu kadar uzun s&uuml;rd&uuml;. Yorum yazıp ta, &ldquo;<em><strong>ulan niye onaylamıyor bu adam, iki ay oldu be</strong></em>&rdquo; diyen arkadaşlardan &ouml;z&uuml;r diliyorum. Kusura bakmayın. :)</p> <p><a href="http://feedads.g.doubleclick.net/~a/ZJxFeUsoD6mp8Ocdj1EM3lz-dcU/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZJxFeUsoD6mp8Ocdj1EM3lz-dcU/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/ZJxFeUsoD6mp8Ocdj1EM3lz-dcU/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZJxFeUsoD6mp8Ocdj1EM3lz-dcU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/NCFMCaN2IqM" height="1" width="1"/>http://nesimia.com/blog/onay-bekleyen-yorumlar-hakkindahttp://nesimia.com/blog/onay-bekleyen-yorumlar-hakkindaGezegen ve girdi sorunu üzerine http://feedproxy.google.com/~r/nesimia/~3/BRatlhiYCiU/gezegen-ve-girdi-sorunu-uzerine-Tue, 11 Nov 2008 18:39:38 +0200<p>Az &ouml;nce bana ait bir grup girdi(Yaklaşık 10 adet), garip bir şekilde gezegende g&ouml;r&uuml;nd&uuml;. Bu durumun benden kaynaklanmadığı belirtip, gezegen yetkililerinin duruma bir el atmasını rica ederim.</p> <p><strong><em>Not: Girdiler ve site kodlarında herhangi bir g&uuml;ncelleme yapılmamıştır.</em></strong></p> <p><a href="http://feedads.g.doubleclick.net/~a/6J-R2Hb-cStHi4OUoaWLQYN5Cpk/0/da"><img src="http://feedads.g.doubleclick.net/~a/6J-R2Hb-cStHi4OUoaWLQYN5Cpk/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/6J-R2Hb-cStHi4OUoaWLQYN5Cpk/1/da"><img src="http://feedads.g.doubleclick.net/~a/6J-R2Hb-cStHi4OUoaWLQYN5Cpk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/BRatlhiYCiU" height="1" width="1"/>http://nesimia.com/blog/gezegen-ve-girdi-sorunu-uzerine-http://nesimia.com/blog/gezegen-ve-girdi-sorunu-uzerine-Süper Perşembe http://feedproxy.google.com/~r/nesimia/~3/5vacZAG3Ps0/super-persembe-Thu, 06 Nov 2008 10:34:05 +0200<p>21:00 Prison Break (Cnbc-e)<br /> 21:30 Benfica &ndash; Galatasaray (TRT) <br /> 22:00 Bilimin ta Kendisi (NatGeo) <br /> 22:15 Breaking Bad (e2)</p> <p>Ulan nidecez şimdi. :-(</p> <p>Ne yapalım ma&ccedil;ı izleriz herhalde.</p> <p><a href="http://feedads.g.doubleclick.net/~a/sNpYBsdjt1wwBcWSlkRhhASaj5U/0/da"><img src="http://feedads.g.doubleclick.net/~a/sNpYBsdjt1wwBcWSlkRhhASaj5U/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/sNpYBsdjt1wwBcWSlkRhhASaj5U/1/da"><img src="http://feedads.g.doubleclick.net/~a/sNpYBsdjt1wwBcWSlkRhhASaj5U/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/5vacZAG3Ps0" height="1" width="1"/>http://nesimia.com/blog/super-persembe-http://nesimia.com/blog/super-persembe-QT Creator http://feedproxy.google.com/~r/nesimia/~3/_ucark6AWgo/qt-creatorMon, 03 Nov 2008 11:17:24 +0200<p><img vspace="5" align="right" hspace="5" src="http://trolltech.com/images/developerzone/welcome.png/image_mini" alt="QT Creator, QT IDE" />QT Creator, Trolltech tarafından geliştirilen bir (IDE) uygulama geliştirme ortamıdır.&nbsp; Eğer sadece QT uygulamaları geliştiriyorsanız (şuan i&ccedil;in) tam size g&ouml;re bir ortam. Gayet şık, hızlı ve hafif.<br /> <br /> <br /> Sisteminize kurmak i&ccedil;in aşağıdaki adresden platformunuza en uygun paketi indirebilirsiniz.</p> <p><a target="_blank" href="http://trolltech.com/developer/qt-creator/qt-creator#download-qt-creator">http://trolltech.com/developer/qt-creator/qt-creator#download-qt-creator</a><br /> <br /> İlk izlenimlerimi aktarmam gerekirse;<br /> <br /> <strong>Artıları</strong></p> <ul> <li>Karşılama penceresi</li> <li>Gelişmiş C/C++ Editor</li> <li>T&uuml;mleşik form tasarımı : Form dosyasını a&ccedil;tığınızda QT Designer bileşenleri ekrandaki yerlerini alıyor ve tasarıma başlayabiliyorsunuz. QT Designer da yaptığınız t&uuml;m işlemleri, QT Creator i&ccedil;erisinden de yapabiliyorsunuz. Bir s&uuml;redir Eclipse i&ccedil;erisinden ki QT Designer bileşenlerini kullanmıyor/kullanamıyordum. &Ccedil;&uuml;nk&uuml; ara sıra ekran kilitleniyor ya da bileşenler &ccedil;ok ge&ccedil; tepki veriyordu.</li> <li>T&uuml;mleşik yardım penceresi : Sınıf adının &uuml;zerine gelin ve F1 e basın :)</li> <li>Program gayet hızlı &ccedil;alışıyor zaten boyut olarak ta &ccedil;ok k&uuml;&ccedil;&uuml;k, doğal olarak daha az belleğe ihtiya&ccedil; duyuyor. (Eclipse g&ouml;re &ccedil;ok ama &ccedil;ok iyi. Uzun s&uuml;redir VS.NET kullanmadığım i&ccedil;in VS.NET'g&ouml;re bir kıyaslama yapamıyorum, artık siz deneyip g&ouml;r&uuml;n)</li> <li>Gelişmiş filtre kutusu ile projelerde, kaynak kodlarda, yardım belgelerinde arama yapabilirsiniz.</li> <li>Proje oluşturma sihirbazı (QT Designer Form Class benim i&ccedil;in &ccedil;ok &ouml;nemli) : GUI, konsol projeleri ve c++ k&uuml;t&uuml;phanesi(library) oluşturabiliyorsunuz.</li> <li>Designer i&ccedil;erisindeki hemen hemen her pencerede filtreleme yapılabiliyor. Bileşenler, &ouml;zellikler hatta Actions i&ccedil;erisinde filtreleme yapabiliyorsunuz.</li> <li>Property Editor'un g&ouml;r&uuml;nt&uuml; tipi değiştirilebiliyor : Bileşenlerin alt alta değilde tıpkı Visual Basic 6 Ya da Delphi 'deki gibi yan yana dizilmesini istiyorsanız Property Editorde sağ tıklayıp g&ouml;r&uuml;nt&uuml; tipini değiştirebiliyorsunuz.</li> <li>Build&amp;Run penceresinden &ccedil;evre değişkenlerini d&uuml;zenleyebiliyorsunuz.</li> <li>Debug desteği : GDB(GNU symbolic debugger) kullanılıyor.</li> </ul> <p><strong>Eksileri</strong></p><ul> <li>Seklemlerin Nerede?: kaynak kodlar arasında gezinebilmek i&ccedil;in ya, yan taraftaki &ldquo;Projects&rdquo; penceresinden dosyayı se&ccedil;iyorsunuz ya da a&ccedil;ılmış olan kaynak kodları, kod yazdığınız editorun &uuml;st kısmında bulunan liste kutusunda se&ccedil;iyorsunuz.</li> <li>Yeni bir proje oluştururken isme g&ouml;re dizin oluşturulmayıp en son oluşturulan dizin i&ccedil;erisine proje dosyaları atılıyor. Eğer projeyi farklı bir dizine a&ccedil;mak istiyorsanız (&ouml;rneğin kendi adında bir dizine) &ldquo;Path&rdquo; kutusu sonunda bulunan &ldquo;...&rdquo; Tool Buttona tıklayarak&nbsp; dizin se&ccedil;mek/oluşturmak gerekiyor.</li> <li>Sadece C/C++ dili destekleniyor. Eğer Java dilinde QT Jambi ile uygulama geliştiriyorsanız biraz daha beklemeniz gerekebilir.</li> <li>Proje y&ouml;neticinin bulunmaması: qt-eclipse-integration eklentisindeki gibi bir .pro proje y&ouml;neticisi yok.</li> <li>Sistem tema ve renklerinin kullanılmaması: Programın geneli, girimsi bir renkte ve tema olarak ta Windows&nbsp; teması kullanılmış. Otomatik olarak sistemi teması kullanılabilir ya da kullanıcının se&ccedil;ebileceği bir pencere eklenebilirdi(ben bulamadım)</li> <li>Project Explorer penceresini kapatmayın, bir daha bulamayabilirsiniz :) (ev dizininizdeki .config/Nokia dizini silip projeyi tekrar a&ccedil;ın.)</li> <li>Project Explorer: Dosyalar alt dizinlerde olsa dahi &uuml;st dizindeymiş gibi yani karışık bir şekilde listeleniyor. Tıpkı Eclipse'deki gibi dizin hiyerarşisine uygun olarak listelense daha iyi olurdu.</li> </ul> <p>Eğer QT uygulamaları geliştiriyorsanız mutlak incelemeniz gereken bir proje. Listede sıraladıklarımdan başka artı ya da eksi taraflarını bulursam bu sayfadan g&uuml;ncelleme yaparak izlenimlerimi aktarmaya devam edeceğim.</p> <p><a href="http://feedads.g.doubleclick.net/~a/mZDLK_j7ZTFIjLmNrr1fIDS4XcQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/mZDLK_j7ZTFIjLmNrr1fIDS4XcQ/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/mZDLK_j7ZTFIjLmNrr1fIDS4XcQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/mZDLK_j7ZTFIjLmNrr1fIDS4XcQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/_ucark6AWgo" height="1" width="1"/>http://nesimia.com/blog/qt-creatorhttp://nesimia.com/blog/qt-creatorQTicari Beta-1http://feedproxy.google.com/~r/nesimia/~3/keNGHuUrKF0/qticari-beta-1Thu, 16 Oct 2008 10:46:23 +0300<p><strong>QTicari</strong>, mod&uuml;ler otomasyon sisteminin beta-1 s&uuml;r&uuml;m&uuml; kullanıma hazır. Bu s&uuml;r&uuml;m ile birlikte projenin lisansı da, <a href="http://tr.pardus-wiki.org/GNU_GPL_(Genel_Kamu_Lisans%C4%B1)_S%C3%BCr%C3%BCm_3_Gayr%C4%B1resm%C3%AE_%C3%87evirisi" target="_blank">GPLv3</a> olarak değiştirilmiştir. (Alpha-1 GPLv2 idi)<br /> <strong><br /> Projeye destek olmak i&ccedil;in :&nbsp; </strong></p> <ul> <li><a href="http://www.nesimia.com/projects/qticari#donate" target="_blank">http://www.nesimia.com/projects/qticari#donate</a> adresine tıklayıp bağış yapabilir.</li> <li>Yeni mod&uuml;l yada belge yazabilir.</li> <li>Tavsiye edebilir.</li> <li>Olmadı, bir hayır duası edebilirsiniz.</li> </ul> <p><br /> İlk se&ccedil;enek tercihimizdir. :-)</p> <p><strong>Projenin kaynak kodları ve ekran g&ouml;r&uuml;nt&uuml;leri i&ccedil;in:</strong><br /> <a href="http://www.nesimia.com/projects/qticari" target="_blank">http://www.nesimia.com/projects/qticari</a> adresine tıklayabilirsiniz.</p> <p>Şuan proje i&ccedil;erisinde iki adet mod&uuml;l, <strong>barkod</strong> ve <strong>ticari</strong> mod&uuml;lleri t&uuml;mleşik olarak gelmektedir. Bu mod&uuml;ller hakkında kısaca bilgi vermek gerekirse;</p> <p><strong>Ticari:</strong> B&uuml;nyesinde; cari, stok, kasa, fatura gibi temel muhasebe mod&uuml;llerini barındıran paket. <br /> <u><em>Kullanım belgeleri i&ccedil;in: </em></u><br /> <a href="http://forums.nesimia.com/index.php?9" target="_blank">http://forums.nesimia.com/index.php?9</a> adresine tıklayın.</p> <p><strong>Barkod:</strong> Barkod etiket tasarımı yapıp, &ccedil;ıktı alabilmenize yarayan mod&uuml;l. <br /> <u><em>Kullanım belgeleri i&ccedil;in:</em></u><br /> <a href="http://forums.nesimia.com/list.php?15" target="_blank">http://forums.nesimia.com/list.php?15</a> adresine tıklayın.</p> <p>Ayrıca;<br /> <br /> <strong>Kurulum ve yapılandırma belgeleri i&ccedil;in: </strong><br /> <a href="http://forums.nesimia.com/list.php?8" target="_blank">http://forums.nesimia.com/list.php?8</a> adresine tıklayın. <br /> <br /> <strong>Forumlar i&ccedil;in : </strong><br /> <a href="http://forums.nesimia.com/index.php?5" target="_blank">http://forums.nesimia.com/index.php?5</a> adresine tıklayın.<br /> <strong><br /> </strong></p> <p><a href="http://feedads.g.doubleclick.net/~a/sq75dTDyGyjjDAIJmHNjdLZfrcY/0/da"><img src="http://feedads.g.doubleclick.net/~a/sq75dTDyGyjjDAIJmHNjdLZfrcY/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/sq75dTDyGyjjDAIJmHNjdLZfrcY/1/da"><img src="http://feedads.g.doubleclick.net/~a/sq75dTDyGyjjDAIJmHNjdLZfrcY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/keNGHuUrKF0" height="1" width="1"/>http://nesimia.com/blog/qticari-beta-1http://nesimia.com/blog/qticari-beta-1Ali Babahttp://feedproxy.google.com/~r/nesimia/~3/-sDp2ZWgGaA/ali-babaSun, 05 Oct 2008 21:16:27 +0300<p>&Ouml;nce &quot;<a href="http://www.nesimia.com/blog/istambul">Istambul</a>&quot;, şimdi de &quot;Ali Baba&quot;</p> <p><blockquote> <p>QString t = &quot;Ali Baba&quot;;<br /> t.remove(QChar('a'), Qt::CaseInsensitive); <br /> // t == &quot;li Bb&quot;</p> <p>&nbsp;</p> </blockquote> Kim bu &quot;Ali Baba&quot;?</p> <p>;) <a href="http://doc.trolltech.com/4.4/qstring.html#remove-5" target="_blank">QString</a></p> <p><a href="http://feedads.g.doubleclick.net/~a/enbnrfKMHDmRh6aqeV3i9gRGwII/0/da"><img src="http://feedads.g.doubleclick.net/~a/enbnrfKMHDmRh6aqeV3i9gRGwII/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/enbnrfKMHDmRh6aqeV3i9gRGwII/1/da"><img src="http://feedads.g.doubleclick.net/~a/enbnrfKMHDmRh6aqeV3i9gRGwII/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/-sDp2ZWgGaA" height="1" width="1"/>http://nesimia.com/blog/ali-babahttp://nesimia.com/blog/ali-babaMySQL Transactionshttp://feedproxy.google.com/~r/nesimia/~3/lcE7EOc155Q/mysql-transactionsFri, 05 Sep 2008 17:34:03 +0300<p>Verilerinizde bir takım g&uuml;ncellemeler yaptınız ve tekrar başa d&ouml;nmek istediniz. <strong>rollback() </strong>yapmanıza rağmen değişiklikler geri alınmadıysa;</p> <ul> <li>Tablolarınızın depolama motoru transaction'nı destekleyen yapıya sahip değildir. &Ouml;rneğin MyIsam gibi. Tablolarınızın depolama motorunu innodb yapabilirsiniz.</li> <li>Yazdığınız kodlarda&nbsp; autocommit olayını tetikleyen &ccedil;ağrılar olabilir. &Ouml;rneğin Stored procedure &ccedil;ağrıları, autocommit olayını tetikleyerek t&uuml;m değişiklikleri onaylar.&nbsp;Veritabanı bağlantısı yapılırken <strong>&quot;SET AUTOCOMMIT = 0&quot;</strong> sorgusunu &ccedil;alıştırarak autocommit'i kapayabilirsiniz.</li> </ul> <p><br /> MySQL sağolsun, ikincisi ile pek haşır neşir etti beni ;)</p> <p><a href="http://feedads.g.doubleclick.net/~a/eaWvCu7DieyTVcIBXthLfZY0fF0/0/da"><img src="http://feedads.g.doubleclick.net/~a/eaWvCu7DieyTVcIBXthLfZY0fF0/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/eaWvCu7DieyTVcIBXthLfZY0fF0/1/da"><img src="http://feedads.g.doubleclick.net/~a/eaWvCu7DieyTVcIBXthLfZY0fF0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/lcE7EOc155Q" height="1" width="1"/>http://nesimia.com/blog/mysql-transactionshttp://nesimia.com/blog/mysql-transactionsEAN - 8, 13 Kontrol Basamağı (Check Digit) Hesaplama http://feedproxy.google.com/~r/nesimia/~3/Q9hLoQ8tDRo/ean-8-13-kontrol-basamagi-check-digit-hesaplamaMon, 01 Sep 2008 06:04:14 +0300<p>Tamam anladık, kontrol basamağının nasıl hesaplanacağına dair bilgileri bir yerlerden bulup kopyaladınız ve sitenize eklediniz. Ama kardeşim, insan bilgilerin doğru olduğunu kontrol etmez mi? İşlem doğru yapılmış mı bir sağlama yapmaz mı?</p> <p>Konu hakkında birka&ccedil; T&uuml;rk&ccedil;e makale ile karşılaştım. Anlatılanlar gibi yaparsanız kodunuz sadece EAN 13'de doğru &ccedil;alışacaktır. &Ccedil;&uuml;nk&uuml; bir &ccedil;oğunda, &ccedil;ift hanelerin toplamının 3 katının alınması gerektiği yazıyor. Oysaki EAN 8'de &ccedil;ift, EAN 13'de tek hanelerin toplamının 3 katı alınmalı. Her neyse biraz uğraştırdı ama konu hakkında İngilizce birka&ccedil; site(<a target="_blank" href="http://www.gs1.org/productssolutions/barcodes/support/check_digit_calculator.html">&ouml;zellikle burası</a>) bulunca sorunu &ccedil;&ouml;zd&uuml;m. Belki birilerinin işine yara diye yazdığım kodu sıcağı sıcağına buraya da yapıştırıyorum.</p> <p><em><strong>barkodUret() - v2 (<font color="#ff6600">G&uuml;ncellendi</font>)</strong></em></p> <p>QString seriBarkodTanimlari::barkodUret(int onEk, int baslangic){<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; QString std = ui.cBoxStandart-&gt;currentText();<br /> &nbsp;&nbsp;&nbsp; QString strOnEk = QString::number(onEk);<br /> &nbsp;&nbsp;&nbsp; QString strBaslangic = QString::number(baslangic);<br /> &nbsp;&nbsp;&nbsp; QString barkod;<br /> <br /> &nbsp;&nbsp;&nbsp; if ( (std == &quot;EAN 8&quot;) ||&nbsp; (std == &quot;EAN 13&quot;) ){<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int uzunluk = strOnEk.length() + strBaslangic.length() + 1; //+1 Kontrol Bit'i i&ccedil;in<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( (std == &quot;EAN 8&quot;) &amp;&amp; (uzunluk &gt; 8) ) return QString();<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if ( (std == &quot;EAN 13&quot;) &amp;&amp; (uzunluk &gt; 13) ) return QString();<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (std == &quot;EAN 8&quot;)&nbsp;&nbsp;&nbsp; barkod.fill('0',8 - uzunluk);<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else barkod.fill('0',13 - uzunluk);<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; barkod = strOnEk + barkod + strBaslangic;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; uzunluk = barkod.length();<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int tek = 0;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int cift = 0;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (int i=0; i&lt;uzunluk; i++){<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( i%2) tek +=&nbsp; barkod.mid(i,1).toInt();&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else cift +=&nbsp; barkod.mid(i,1).toInt();<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int toplam;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (std == &quot;EAN 8&quot;) toplam = (cift * 3) + tek;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else toplam = (tek * 3) + cift;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int onunKati;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (toplam%10 != 0)<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; onunKati = QString(QString::number(QString::number(toplam).mid(0, QString::number(toplam).length() - 1 ).toInt() + 1) + &quot;0&quot;).toInt();<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; onunKati = toplam;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int checkDigit = onunKati - toplam;<br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br /> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return barkod + QString::number(checkDigit);<br /> &nbsp;&nbsp;&nbsp; } <br /> &nbsp;&nbsp;&nbsp; else return QString();<br /> }</p> <p><a href="http://feedads.g.doubleclick.net/~a/8Ke8JrZVWPT5iA02n_8zMWIqfDs/0/da"><img src="http://feedads.g.doubleclick.net/~a/8Ke8JrZVWPT5iA02n_8zMWIqfDs/0/di" border="0" ismap="true"></img></a><br/> <a href="http://feedads.g.doubleclick.net/~a/8Ke8JrZVWPT5iA02n_8zMWIqfDs/1/da"><img src="http://feedads.g.doubleclick.net/~a/8Ke8JrZVWPT5iA02n_8zMWIqfDs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/nesimia/~4/Q9hLoQ8tDRo" height="1" width="1"/>http://nesimia.com/blog/ean-8-13-kontrol-basamagi-check-digit-hesaplamahttp://nesimia.com/blog/ean-8-13-kontrol-basamagi-check-digit-hesaplama