wxPython:狀態欄介紹


本節看一下wxPython中狀態欄的編程,先看個例子,此程序中其他部分代碼略,如需要請看上一篇文章。

class PaintFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, "Panit Frame", size = (800, 600))
        self.paint = PaintWindow(self, -1)
        
        #狀態欄
        self.paint.Bind(wx.EVT_MOTION, self.OnPaintMotion)
        self.statusbar = self.CreateStatusBar()
        #將狀態欄分割為3個區域,比例為1:2:3
        self.statusbar.SetFieldsCount(3)
        self.statusbar.SetStatusWidths([-1, -2, -3])
        
        
    def OnPaintMotion(self, event):
        
        #設置狀態欄1內容
        self.statusbar.SetStatusText(u"鼠標位置:" + str(event.GetPositionTuple()), 0)
        
        #設置狀態欄2內容
        self.statusbar.SetStatusText(u"當前線條長度:%s" % len(self.paint.curLine), 1)
        
        #設置狀態欄3內容
        self.statusbar.SetStatusText(u"線條數目:%s" % len(self.paint.lines), 2)   
             
        event.Skip()
        
if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = PaintFrame(None)
    frame.Show(True)
    app.MainLoop()   

測試:

其中:

CreateStatusBar()用來增加一個狀態欄。

SetFieldsCount()方法設置將狀態分為幾個區。

SetStatusText()用於設置狀態欄內容。

SetStatusWidth()用於設置各欄寬度,該方法要求一個整數的Python列表作為參數,列表的長度必須和狀態欄中哉的數量一致。按列表中整數的順序來計算對應域的寬度。如果整數是正值,那么寬度是固定的。如果你想域的寬度隨框架的變化而變化,那么應該使用負值。負值的絕對值代表域的相對寬度;可以把它認為是所占總寬度的比例。例如調用statusbar.SetStatusWidth([-1, -2,-3])方法所導致的各域從左到右的寬度比例是1:2:3。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM