PyGTK Uygulamaları Açılmıyor

Başlatan OnLyCode, 03 Nisan 2011 - 14:06:43

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

OnLyCode

import pygtk
pygtk.require20()
import gtk

class Program(object):
    def __int__(self):
        self.pencere = gtk.Window(gtk.WINDOW_TOPLEVEL)

        self.pencere.set_title("Merhaba Dunya")
        self.pencere.connect("delete_event", gtk.main.quit)
        self.pencere.resize(300,300)
        self.pencere.set_position(gtk.WIN_POS_CENTER)
        self.pencere.show()

    def main(self):
        gtk.main()

uyg = Program()
uyg.main()


Bu kodu Ubuntu 11.04'de çalışıtırmaya çalıştığımda konsolda alt satıra geçiyor program çalışıyormuş gibi olsada hiç bir pencere açılmıyor.

sem

Uygulama ekran görünüsü alıyor bende... Fare ile taradığım bölgenin resmini alıp masaüzerine pygtk olarak kayıt ediyor. Fare imleci de değişiyor... Koda bakınca gerçi durum saçma geliyor =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

OnLyCode


sem

Kodlardan anladığım kadarı ile başlığı "Merhaba Dünya"  dünya olan, ekranın ortasında açılması gereken boş bir pencere açılması gerekiyor?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

OnLyCode

Evet, ama açılmıyor herhangi bir hata mesajı da yok

sem

Genelde boyutlarında sıkıtı olabiliyor bu durumlarda. alt + tab ile kontrol edin derim... Bana bu programın ekran görünüsü alması daha gerip geldi açıkcası...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

OnLyCode


sem

".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

hitokiri

#8
Aynı komutu 12.04 ile denedim yine aynen alt satıra geçti,
bende baştan yazdım zaten kaç satır şey;
bu sefer hata falan vermeden "zıng" diye açıldı,zaten gtk ile ilgili bir şey değil sanırım;
çünkü aynı kod geliştirme sürümünde de yine çalışmadı,
hani diyorum;
_ init kısmında fazladan "_" varda ben mi görmüyorum , yoksa "object" yüzünden mi,
bunlar değil , ya bir şeyleri gözden kaçıyorum ya da komik bir gariplik bu :D

#!/usr/bin/env python
#! coding:utf-8 -*-
# vim: ts=4:sw=4

import gtk
class uygulama():
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)

        self.window.set_position(gtk.WIN_POS_CENTER)

        self.window.connect("delete-event",gtk.main_quit)

        self.window.set_title("Merhaba Dünya")
        self.window.resize(400,500)

        self.window.show_all()
       
    def main(self):
        gtk.main()
       
uyg = uygulama()
uyg.main()                   



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 19 Eylül 2012 - 11:13:49

Heh buldum bu kısım sanırım hatanın nedeni,
Alıntı Yapself.pencere.connect("delete_event", gtk.main.quit)


şu şekilde ;

Alıntı Yapself.window.connect("delete-event",gtk.main_quit)
değiştirince sorun düzelmiş olabilir. XD

kaansef

def __int__(self):

Bu kod'da init yazılması gerekirken int yazılmış.Bu yüzden nesneyi örneklediğinizde init prosedürünün altındaki kodlar işlemediğinden ve pencereyi oluşturan kodların init prosedürü altına yazılmasından dolayı pencere göstermek yerine direk olarak gtk.main() fonksiyonu çalışıyor.Gösterilecek bir pencere olmadığı için ekrana pencere gelmiyor.
# 28065

krwlng


Aşağıda bu konudakine benzer bir örnek var, yardımcı olabilir.

import pygtk
pygtk.require('2.0')
import gtk


class HelloWorld:
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_border_width(10)
   
        self.window.connect("delete_event", self.delete_event)
        self.window.connect("destroy", self.destroy)
   
        self.button = gtk.Button("Hello World")
        self.button.connect("clicked", self.hello)
        self.button.connect_object("clicked", gtk.Widget.destroy, self.window)
   
        self.window.add(self.button)
        self.window.show_all()


    def hello(self, widget):
        print 'Hello World'


    def delete_event(self, widget, event, data=None):
        print "delete event occurred"


        return False


    def destroy(self, widget, data=None):
        print "destroy signal occurred"
        gtk.main_quit()


    def main(self):
        gtk.main()


if __name__ == "__main__":
    hello = HelloWorld()    hello.main()
http://twitter.com/yusuFBrn

Ali İsmail Korkmaz, FENERBAHÇE Yıkılmaz!