wxpython 调用子窗口_wxpython入门第一步(简单例子)
在這部分wxPython教程中,我們將創建一些簡單的例子。
簡單的例子
? 我們從一個非常簡單的例子開始。我們的第一個腳本將只顯示一個小窗口。它不會做太多事情。我們將逐行分析這個腳本。
# simple.pyimport wxapp = wx.App()frame = wx.Frame(None, )frame.Show()app.MainLoop()? 這是我們的第一個例子
# simple.py? 第一行是腳本的名稱
import wx? 這一行導入了基本的 wxPython 模塊,即 core、controls、gdi、misc 和 windows。從技術上講,wx是一個命名空間,所有基本模塊中的函數和對象都以wx.開頭。所有來自基本模塊的函數和對象都以wx.為前綴。下一行代碼將創建一個應用程序對象。
app = wx.App()? 每個wxPython程序必須有一個應用程序對象。
frame = wx.Frame(None, )frame.Show()? 這里我們創建一個wx.Frame對象。wx.Frame組件是一個重要的容器組件。我們將在后面詳細分析這個小組件。wx.Frame 組件是其他組件的父組件。它本身沒有父組件。如果我們為父級參數指定None,則表示我們的小組件沒有父級。它是小組件層次結構中的頂級小組件。在我們創建 wx.Frame 小組件后,我們必須調用 Show() 方法才能在屏幕上實際顯示它。
app.MainLoop()? 最后一行進入主循環。主循環是一個無盡的循環。它捕捉并派發在我們的應用程序生命周期中存在的所有事件。
? 這是一個非常簡單的例子。盡管如此簡單,我們可以用這個窗口做很多事情。我們可以調整窗口的大小,最大化,最小化。這個功能需要大量的編碼。所有這些功能都是由 wxPython 工具包默認隱藏和提供的。我們沒有理由重新發明輪子。
wx.Frame
? wx.Frame widget 是 wxPython 中最重要的 widgets之一。它是一個容器組件,意味著它可以包含其他組件。這意味著它可以包含其他小組件,實際上它可以包含任何非框架或對話框的窗口。wx.Frame由標題欄、邊框和一個中心容器區域組成,標題欄和邊框是可選的。標題欄和邊框是可選的。它們可以通過各種標志來移除。? wx.Frame 有以下構造函數:
wx.Frame(wx.Window parent, int id=-1, string , wx.Point pos=wx.DefaultPosition, wx.Size size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, string name="frame")? 該構造函數有七個參數。第一個參數沒有默認值。其他六個參數有。后四個參數是可選的。前三個參數是強制性的。
? wx.DEFAULT_FRAME_STYLE是一組默認標志:wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER wx.SYSTEM_MENU |wx.CAPTION - wx.CLOSE_BOX - wx.CLIP_CHILDREN。通過組合不同的樣式,我們可以改變wx.Frame 組件的樣式。
# no_minimize.pyimport wxapp = wx.App()frame = wx.Frame(None, style=wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)frame.Show(True)app.MainLoop()? 我們的目的是為了顯示一個沒有最小化框的窗口,所以我們沒有在樣式參數中指定這個標志。
大小和位置
? 我們可以通過兩種方式來指定我們應用程序的大小。我們在widget的構造函數中有一個大小參數,或者我們可以調用SetSize()方法。
# set_size.pyimport wxclass Example(wx.Frame): def __init__(self, parent, title): super(Example, self).__init__(parent, title=title, size=(350, 250))def main(): app = wx.App() ex = Example(None, ) ex.Show() app.MainLoop()if __name__ == '__main__': main()? 在這個例子中,應用程序的大小將是350x250px。
def __init__(self, parent, title): super(Example, self).__init__(parent, title=title, size=(350, 250))? 在構造函數中,我們將wx.Frame組件的寬度設置為350 px。widget的高度為250 px。
? 同樣,我們也可以在屏幕上定位我們的應用程序。默認情況下,窗口被放置在屏幕的左上角。但在不同的操作系統平臺甚至窗口管理器上可能會有所不同。有些窗口管理器會自己放置應用程序窗口。有的會做一些優化,讓窗口不重疊。程序員可以通過編程來定位窗口。我們已經在wx.Frame widget的構造函數中看到了一個pos參數。通過提供默認值以外的其他參數,我們可以自己控制位置。
| Move(wx.Point point) | move a window to the given position |
| MoveXY(int x, int y) | move a window to the given position |
| SetPosition(wx.Point point) | set the position of a window |
| SetDimensions(x, y, width, height, sizeFlags) | set the position and the size of a window |
有幾種方法可以做到這一點。
# moving.pyimport wxclass Example(wx.Frame): def __init__(self, parent, title): super(Example, self).__init__(parent, title=title, size=(300, 200)) self.Move((800, 250))def main(): app = wx.App() ex = Example(None, ) ex.Show() app.MainLoop()if __name__ == '__main__': main()? 有一種特殊情況。我們可能希望將窗口最大化顯示,在這種情況下,窗口的位置是(0, 0),并占據整個屏幕。wxPython內部計算了屏幕坐標。為了最大化我們的wx.Frame,我們調用Maximize()方法。
屏幕居中
? 如果我們想讓我們的應用程序在屏幕上居中,wxPython有一個方便的方法。Centre()方法可以簡單地將窗口在屏幕上居中,無需計算屏幕的寬度和高度。只需調用該方法即可。
# centering.pyimport wxclass Example(wx.Frame): def __init__(self, parent, title): super(Example, self).__init__(parent, title=title, size=(300, 200)) self.Centre()def main(): app = wx.App() ex = Example(None, ) ex.Show() app.MainLoop()if __name__ == '__main__': main()? 在這個例子中,我們將一個窗口居中放在屏幕上。
self.Centre()? Centre()方法使窗口在屏幕上居中。
總結
以上是生活随笔為你收集整理的wxpython 调用子窗口_wxpython入门第一步(简单例子)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oc 画一个圆弧_SolidWorks一
- 下一篇: css布局方式_网页布局都有哪种?一般都