Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Python / Zope

Cevapla
 
LinkBack Seçenekler
Eski 23/06/2008, 01:26   #1 (permalink)
mtl
Üye
 
Üyelik Tarihi: 06/2008
Mesaj: 33
Mutsuz PyQt örneğinda hata yapıyorum

Windows ortamında, Eclipse ile düzenlediğim ekteki dosyayı bir türlü çalıştıramıyorum.

Bu çalışmanın kaynağı, http://wiki.pardus-linux.org/index.p...T_Denemeleri-1

Not: Ekteki oyun.py dosyası düzenlenmiştir.
Eklenmiş Dosyalar
File Type: rar oyun.rar (2.1 KB, 3 views)
mtl hatta değil   Alıntı Yaparak Yanıtla
Eski 23/06/2008, 18:16   #2 (permalink)
Yönetim Kurulu
 
Muallim-i Âli Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Yer: İstanbul
Mesaj: 254
Varsayılan

Buyur kardeş belki işini görür.

Koddaki hatalar(Acizane tespit ettiklerim) :

1-) self.retranslateUi(MainWindow) satırından sonra class ismi tanımlanmamış. selfe bağlanmamış.

Yani

self.retranslateUi(MainWindow)
self.oyun = oyun(self)

diye devam etmeliydi.

2-)

QtCore.QObject.connect(self.btnSor,QtCore.SIGNAL(" clicked()"),self.oyun.sor())
QtCore.QObject.connect(self.btnKontrolEt,QtCore.SI GNAL("clicked()"),self.oyun.say())


Burada butonlar fonksiyonlara bağlanırken hata yapılmış. Yani sor() ve / veya say() diyemezsin. sor veya say dersin. Parantezler kullanılmaz.

Ayrıca btnSor -> say , btnKontrolEt --> sor adlı fonksiyona bağlanmalıydı. Kodlarda hata oluyor böyle olmazsa.

Yani doğrusu böyle olmalıydı :

QtCore.QObject.connect(self.btnSor,QtCore.SIGNAL(" clicked()"),self.oyun.say)
QtCore.QObject.connect(self.btnKontrolEt,QtCore.SI GNAL("clicked()"),self.oyun.sor)

3-) try except hata kontrolü ekledim. lineEdit e bir şey yazılıp yazılmadığını

if len(ui.lineEdit.text()) != 0): satırıyla kontrol ettikten sonra kodların işletmesini sağladık..

4-) Kullanıcı yeni bir soru sorduğunda label e "..." yazdırırsak sor butonuna tıkladığında doğru çalıştığını kanıtlamış oluruz ve kullanıcının da kafası karışmaz. Acaba yeni soru mu yoksa eski sayıyı mı soruyor hâla diye...

say() fonksiyonuna ui.label.setText("...") satırını ekleyerek bunu da hâllettik.

5-)

ui.label.setText(QtGui.QApplication.translate("Mai nWindow", "Daha büyük!", None, QtGui.QApplication.UnicodeUTF8))

gibi uzun kodlar yerine daha kısalarını kullandık ve doğrusu da budur.

ui.label.setText(u"Daha büyük!") bu şekilde u"" kullanırsak Türkçe karakter sıkıntısı çekmeyiz. Hâla Türkçe karakter sorunu yaşıyorsak kodu biraz daha uzatırız.

unicode(ui.label.setText(u"Daha büyük!")).encode('utf-8')

Fakat yine de kısa. unicode().encode daha çok metin yerine degisken tanımlıyorsak kullanılır.

Yani unicode(ui.label.setText(degisken)).encode('utf-8) gibi.'

Not: Ekteki oyun.py dosyası düzenlenmiştir.
Not2: class oyunu aşağıda veya yukarıda tanımlamak durumu değiştirmez. Her iki durumda da program doğru çalışır.
Eklenmiş Dosyalar
File Type: zip oyun2.zip (1.3 KB, 6 views)
__________________
Güzel gören güzel düşünür, güzel düşünen hayatından lezzet alır.
(Said Nursi)


Java Tutorial:http://java.sun.com/docs/books/tutor.../download.html
Muallim-i Âli hatta değil   Alıntı Yaparak Yanıtla
Eski 24/06/2008, 00:31   #3 (permalink)
mtl
Üye
 
Üyelik Tarihi: 06/2008
Mesaj: 33
Varsayılan

Muallim-i Âli öncelikle cevabınız için teşekkürler. Python ve PyQt'de fazla bir tecrubem yok. M. BAŞER'in Python kitabını bitirdim ve bana bir temel sağladığını düşünüyorum. PyQt'ye ise yeni başladım. Burada sorduğum sorular tamamen dilin ya da arayüzün programlama mantığını anlayabilmekle alakalı. Sizin ve diğer arkadaşların ilgisine tekrar teşekkürler.
mtl hatta değil   Alıntı Yaparak Yanıtla
Eski 24/06/2008, 01:14   #4 (permalink)
Yönetim Kurulu
 
Muallim-i Âli Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Yer: İstanbul
Mesaj: 254
Varsayılan

PyQt yi öğrenmek açısından 1- elle kodlamak ile 2- arayüzü qt designer ile yapıp pyuic ile python kodlarına çevirip kodlamak arasında farklar oluyor. Yani iki yolu birden öğrenmek yerine birini seçip onu öğrenmek daha kolay olur diye düşünüyorum(ve uyguluyorum).

Bu iki tarzdan birini öğrenmek işini görecektir. Kodların 1 ve 2 yönteme göre yapılışında fark olur. 2. yöntem de genelde daha kısa yazarsın ya da biraz farklı yazarsın. Ama internette 1. yöntemi kullanan örneklerin 2. yöntemdekinden daha çok olduğu şüphesiz. Tabi seçim sana kalmış. Ben deneme yanılma(bol bol uygulama yaparak) ile öğrendim / öğreniyorum 2. yöntemi...Takıldığım yerde 1. yöntemdeki örnekleri inceliyorum.

Şu site 1. yöntemdeki mantığı anlatmak açısından oldukça yararlı :

http://zetcode.com/tutorials/pyqt4/

Bir kısmı Türkçe'ye çevrilmişti : http://forum.ceviz.net/pyqt-ye-giris-t54281.html

1. yönteme göre örnekler :
http://forum.ceviz.net/pyqt-ornekleri-t55558.html

2. yönteme göre örnekler forumda mevcut.
__________________
Güzel gören güzel düşünür, güzel düşünen hayatından lezzet alır.
(Said Nursi)


Java Tutorial:http://java.sun.com/docs/books/tutor.../download.html
Muallim-i Âli hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Değişkende sanırım hata yapıyorum harem PHP 3 07/03/2008 15:35
nerede hata yapıyorum? kitetnakre Javascript / DHTML / Ajax 3 04/02/2008 17:04
nerde hata yapıyorum :( grafmaster PHP 1 08/01/2007 15:30
Nerde Hata Yapıyorum !!! winpeace Javascript / DHTML / Ajax 1 11/03/2006 00:27
Nerde hata yapıyorum? rejisor PHP 7 20/06/2005 13:27


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 16:30.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net