2015年1月22日 星期四

pygtk中widget的隱藏和顯示

從pygtk手冊,Widget中有一個hide()的方法,Image是繼承Misc,Misc又是繼承Widget,所以這個hide()有可能,可以使用在Image類別.

順便講一下,物件導向語言的繼承

 繼承是物件導向的特性,但不是所有變數,方法都可被繼承,用遺傳來舉例,兒子可有些父親特性,但不可能全部一樣,譬如父親長的高又聰明,兒子繼成了父親長的高,但並不聰明,說兒子很高,我們會說YES,說兒子聰明,我們會說NO.
在JAVA宣告私有private變數或方法,則不能被繼承,Python我想也是差不多吧,剛開始研究python,這是題外話


從pygtk手冊,Image是這樣繼承來的


+-- gobject.GObject
  +-- gtk.Object
    +-- gtk.Widget
      +-- gtk.Misc
        +-- gtk.Image 
 
 def SHOW_IMAGE(self, widget, *event):
  #取得激活對象按鈕名稱
  bt_active_label=self.window.get_focus().get_label()
  #根據按鈕名稱,顯示或隱藏圖片
  if bt_active_label=='隱藏圖片':widget.hide()
  if bt_active_label=='顯示圖片':widget.show()
 
 上面這個 SHOW_IMAGE方法,加到上一篇文章,
 
使用GLADE建立image,然後button1,button2的 clicked signal,再加一個SHOW_IMAGE,處理對象設image1
                self.image=self.builder.get_object('image1')
  self.image.set_from_file("/home/yplin/lion.png")
 
self.builder.get_object('image1')取得image
set_from_file("/home/yplin/lion.png") 把圖片加入image widget

執行後如下
 
按顯示圖片鈕,標籤出現"顯示圖片",圖片顯示出來,



按隱藏圖片鈕,標籤出現"隱藏圖片",圖片不見了,
 

沒有留言: