2013-05-19 54 views
0

這一塊我的代碼runtimeerror缺少處理蟒蛇格萊德

class gui_manage(): 
    def delete_event(self , widget , data): 
     False 
     print 'delete' 
    # ####################### 
    # define some functions here 
    as example : start_download(self ,widget) 
    ######################################## 
    def start_download(self , widget ): 
     print 'add_url_clicked' 

    def __init__(self): 
     builder = gtk.Builder() 
     builder.add_from_file('gui.glade') 
     win=builder.get_object('add_url_win') 
     text_entry= builder.get_object('url_entry') 
     signals ={ 
     'delete_event' : self.delete_event , 
     'destroy' : self.destroy , 
     'cancel_button_clicked' : self.delete_event , 
     'addpaused_button_clicked' : self.addpaused , 
    'start_download_clicked' : self.start_download , 
     'addpaused_button_clicked' : self.addpaused 
     } 
     builder.connect_signals(signals) 

林間空地文件顯示相應的線路:

<object class="GtkButton" id="start_download"> 
    <property name="label" translatable="yes">start download</property> 
     <property name="visible">True</property> 
      <property name="can_focus">True</property> 
      <property name="receives_default">True</property> 
     <property name="tooltip_text" translatable="yes">start download now ...</property> 
    <property name="use_action_appearance">False</property> 
<signal name="clicked" handler="start_download" swapped="no"/>' 

我得到了錯誤:

gui_manage.py:45: RuntimeWarning: missing handler 'start_download' 
    builder.connect_signals(signals) 

然而,通過點擊「取消按鈕的事件」成功調用delete_event()方法。

簡而言之,所有方法都以相同的方式定義,連接在同一個字典中,雖然有些已經丟失!

+0

是明確??? /n我打電話給很多方法,其中一些方法錯過了,另一方正常地調用! – tabebqena

+0

請提出任何提示。 – tabebqena

回答

0

現在好工作:

'def start_download(self , object ): 
    print 'add_url_clicked'' 

,而不是

'def start_download(self , widget ): 
    print 'add_url_clicked'' 

&

'self.signals = {}' 

,而不是

'signals = {}' 

&

'self.builder.connect_signals(self)' 

代替

'self.builder.connect_signals(signals)' 

thancks所有