2011-05-08 37 views
0

此代碼顯示我一個狀態欄。但是,當我點擊一個按鈕時,並沒有說我已經在狀態欄中這樣做了。我有一個狀態欄,但我如何使它工作?

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

import subprocess 

class Example: 
    def __init__(self): 
     window = gtk.Window(gtk.WINDOW_TOPLEVEL) 
     window.set_size_request(400, 500) 
     window.set_title("GTK Menu") 
     window.connect("delete_event", 
         lambda w,e: gtk.main_quit()) 

     vbox = gtk.VBox(False, 0) 
     window.add(vbox) 
     vbox.show() 

     button = gtk.Button("Write") 
     button.connect("clicked", self.clicked_Write) 
     vbox.pack_end(button, True, True, 2) 
     button.show() 

     button2 = gtk.Button("Draw") 
     button2.connect("clicked", self.clicked_Scrible) 
     vbox.pack_end(button2, True, True, 2) 
     button2.show() 

     button3 = gtk.Button("Final Test") 
     button3.connect("clicked", self.clicked_Final) 
     vbox.pack_end(button3, True, True, 2) 
     button3.show() 

     button4 = gtk.Button("Helloworld") 
     button4.connect("clicked", self.clicked_Hello) 
     vbox.pack_end(button4, True, True, 2) 
     button4.show() 

     button5 = gtk.Button("Facebook") 
     button5.connect("clicked", self.clicked_Facebook) 
     vbox.pack_end(button5, True, True, 2) 
     button5.show() 

     # Add status bar to vbox 
     self.statusbar = gtk.Statusbar() 
     vbox.pack_start(self.statusbar, False, False, 0) 



     window.show_all() 


    def clicked_Write(self, widget): 
     subprocess.Popen(["python", "Helloworld.py"]) 

    def clicked_Scrible(self, widget): 
     subprocess.Popen(["python", "scrible.py"]) 

    def clicked_Final(self, widget): 
     subprocess.Popen(["python", "Final.py"]) 

    def clicked_Hello(self, widget): 
     subprocess.Popen(["python", "Helloword.py"]) 

    def clicked_Facebook(self, widget): 
     subprocess.Popen(["python", "facebookfinal.py"]) 


    def main(self): 
     gtk.main() 
     return 0 

Example().main() 
+0

請確保格式化您的代碼示例。 – zeekay 2011-05-08 18:06:55

回答

0

您需要通過向其中推送消息來顯式更新狀態欄。該文檔有a brief example showing how the statusbar works

試試這個部分,讓我知道,如果消息顯示:

def clickedWrite(self, widget): 
    # push a new message to the statusbar, using context_id 0 
    self.statusbar.push(0, "called Write") 
    subprocess.Popen(["python", "Helloworld.py"]) 
+0

這不起作用 – 2011-05-08 19:55:50

0

這個怎麼樣?

def clickedWrite(self, widget): 
    # push a new message to the statusbar, using context_id 0 
    self.statusbar.push(0, "called Write") 
    while gtk.events_pending(): 
     gtk.main_iteration_do(False) 
    subprocess.Popen(["python", "Helloworld.py"]) 
+0

http://stackoverflow.com/questions/5448217/pygtks-strange-problem-about-set-buttons-sensitive-property/5448610#5448610 – saeedgnu 2011-05-09 09:44:18

相關問題