Bulunan 1 den 2 - Toplam 2
gtk filechooserdialog'da garip hata - - Programlama - Ceviz Forum
  1. #1
    Ceviz Üyesi bsod1 Üyenin Avatarı
    Üyelik Tarihi
    03-Temmuz-2009
    Mesaj
    173

    Varsayılan gtk filechooserdialog'da garip hata

    Kod:
    # -*- coding: utf-8 -*-
    import gtk
    
    class Gui:
        def __init__(self):
            window = gtk.Window()
            window.connect("destroy", lambda w: gtk.main_quit())
            window.move(500, 100)
            window.set_default_size(400, 100)
    
            vbox = gtk.VBox(False, 6)
            hbox = gtk.HBox(False, 2)
            self.scrolledwindow = gtk.ScrolledWindow()
            self.scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC,
                                           gtk.POLICY_AUTOMATIC)
            self.textbuffer = gtk.TextBuffer()
            self.insert_mark = self.textbuffer.get_insert()        
    
            self.entry = gtk.Entry()
            self.entry.set_text("")
            self.browsebutton = gtk.Button(u"Gözat")
            self.browsebutton.connect("clicked", self.browse)
            hbox.pack_start(self.entry, True, True, 0)
            hbox.pack_end(self.browsebutton, False, False, 0)
    
            hbox2 = gtk.HBox(False, 2)
            self.new_folder = gtk.Entry()
            self.new_folder.set_text("")
            self.new_folder.set_sensitive(False)
            
            self.browse_new_folder = gtk.Button(u"Gözat")
            self.browse_new_folder.connect("clicked", self.browse)
            self.browse_new_folder.set_sensitive(False)
            hbox2.pack_start(self.new_folder, True, True, 0)
            hbox2.pack_end(self.browse_new_folder, False, False, 0)
            
            
            self.check_ayniKlasor = gtk.CheckButton(
                u"Aynı klasörde düzenle")
            self.check_ayniKlasor.set_active(True)
            self.check_ayniKlasor.connect("toggled", self.toggled)
            self.baslaButton = gtk.Button(u"Başla")
            self.baslaButton.connect("clicked", self.basla)
            self.textview = gtk.TextView(self.textbuffer)
            self.textview.set_cursor_visible(False)
            self.textview.set_editable(False)
            #self.textview.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 50)
    
            self.filechooserdialog = gtk.FileChooserDialog("FileChooserDialog",
                                                           None,
                                                           gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
                                                           (gtk.STOCK_CANCEL,
                                                            gtk.RESPONSE_CANCEL,
                                                            gtk.STOCK_OK,
                                                            gtk.RESPONSE_OK))
            #self.filechooserdialog.connect()
    
            vbox.pack_start(hbox, False, False, 0)
            vbox.pack_start(self.check_ayniKlasor, False, False, 0)
            vbox.pack_start(hbox2, False, False, 0)
            vbox.pack_start(self.scrolledwindow, True, True, 0)
            #vbox.pack_start(self.textview, False, False, 0)
            vbox.pack_end(self.baslaButton, False, False, 0)
            self.scrolledwindow.add(self.textview)
            
            window.add(vbox)
            window.show_all()
    
        def browse(self, widget):
            response = self.filechooserdialog.run()
            if response == gtk.RESPONSE_OK:
                folder = self.filechooserdialog.get_filename()
                if widget == self.browsebutton:
                    self.entry.set_text(folder)
                elif widget == self.browse_new_folder:
                    self.new_folder.set_text(folder)
                self.filechooserdialog.destroy()
    
        def toggled(self, widget):            
            if self.new_folder.get_sensitive():
                self.new_folder.set_sensitive(False)
                self.browse_new_folder.set_sensitive(False)
            else:
                self.new_folder.set_sensitive(True)
                self.browse_new_folder.set_sensitive(True)
    
        def basla(self, widget):
            self.textbuffer.place_cursor(
                self.textbuffer.get_end_iter())
            self.textbuffer.insert_at_cursor(
                "%s klasorunde isleme baslaniyor..\n" % self.entry.get_text())
            self.textview.scroll_to_mark(self.insert_mark, 0.4)
    
    Gui()
    gtk.main()
    yukarıdaki kodda filechooserdialog'u açtıktan sonra, ok veya cancel tuşuyla kapadıktan sonra bir daha açmaya(gözat) tıklayınca program herhangi bir mesaj veya exception vermeden kapanıyor, bir fikri olan var mı?

  2. #2
    Ceviz Üyesi bsod1 Üyenin Avatarı
    Üyelik Tarihi
    03-Temmuz-2009
    Mesaj
    173

    Varsayılan

    Neyse, gtk kullanan yok herhalde, irc.gnome.org daki #pygtk kanalından birisi çözdü sorunu. filechooserdialog.destroy() yaptığımda, bir daha onu çağıramıyormuşum, dolayısıyla destroy() yerine hide()'ı çağırmalıymışım.

Konu Bilgileri

Bu Konuya Gözatan Kullanıcılar

Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)

Yer İmleri

Mesaj Yetkileriniz

  • Yeni konu açmaya yetkiniz yok
  • Cevap yazmaya yetkiniz yok
  • Eklenti yüklemeye yetkiniz yok
  • Mesajınızı düzeltmeye yetkiniz yok
  •