Python執行個體之wxpython中Frame使用方法

來源:互聯網
上載者:User
本節為大家分享的例子是wxpython Frame的用法。

例子:

代碼如下:


#!/usr/bin/python
# -*- coding: GBK -*-
# simple.py

import wx

app = wx.App()
frame = wx.Frame(None)
frame.Show()
app.MainLoop()

例2,

代碼如下:


#!/usr/bin/python
告訴程式 python 解譯器的路徑,只是在 linux 系統下有用,在 Windows 下寫上這行代碼不起作用,但是也沒問題

# -*- coding: GBK -*-
告訴 python 系統字元編碼,這樣我們就可以在程式中使用中文漢字了,如果沒有這一行就是亂碼。Windows 下是 GBK,Linux 下是UTF-8

app = wx.App()
初始化應用程式

frame = wx.Frame(None)
frame.Show()
建立一個 Frame (就是表單),並顯示出來。

app.MainLoop()
應用程式進入訊息迴圈

Frame 其實就是表單,前面產生表單時沒有給他任何參數,只產生了一個預設的表單,產生預設表單的代碼:
frame = wx.Frame(None)

其實 wx.Frame 可以傳入很多參數,由此來控制產生表單的樣式和行為,現在來看看 Frame建構函式的原型:
__init__(self, Window parent, int id=-1, String title=EmptyString, 
Point pos=DefaultPosition, Size size=DefaultSize, 
long style=DEFAULT_FRAME_STYLE, String name=FrameNameStr)

參數1:parent
當前視窗的父視窗,如果當前視窗是top-level window的話,則parent=None,如果不是頂層視窗,則它的值為所屬frame的名字

參數2:id
表單編號。如果設定為-1,則系統自動給他分配一個編號。預設為-1.

參數3:title
表單的標題列,即Caption。預設為空白。

參數4:pos
表單的位置座標。預設值為(-1,-1),則表單的位置由系統決定。

參數5:size
表單的大小。預設值為(-1,-1),則表單的大小由系統決定。

參數6:style
表單樣式。預設值為 DEFAULT_FRAME_STYLE

預設樣式 DEFAULT_FRAME_STYLE 是下面這些值的複合:
wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | 
wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN

它包括最小化按鈕、最大化按鈕、系統功能表、標題列、關閉按鈕、可變大小等等。您也可以根據自己的需求改變樣式,具體請參照協助。

參數7:name
表單名稱。

可以看到,7個參數中6個都有預設值,只有第一個參數 parent 需要設定一下,所以一個最簡單的表單就是:

Python代碼 收藏代碼
frame = wx.Frame(None)

表單標題:

Python代碼 收藏代碼
frame = wx.Frame(None,title="Hello World")

位置和大小:

Python代碼 收藏代碼
frame = wx.Frame(None,title="世界你好",size=(300,150),pos=(200,200))

樣式一:只有一個光禿禿的標題列

Python代碼 收藏代碼
frame = wx.Frame(None,style=wx.CAPTION)

樣式二:只有客戶區,沒有標題列,也不能改變大小

Python代碼 收藏代碼
frame = wx.Frame(None,style=0)

樣式三:只有一個關閉按鈕,不能改變大小

代碼如下:


frame = wx.Frame(None,style= wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)
wx.DEFAULT_FRAME_STYLE :這是每個視窗的預設風格,包含標題、可調節大小的邊框,最大最小化按鈕、關閉按鈕和系統功能表。
wx.CAPTION :在架構上增加一個標題列,它顯示該架構的標題屬性。
wx.CLOSE_BOX :指示系統在架構的標題列上顯示一個關閉框,使用系統預設的位置和樣式。
Wx.FRAME_ON_TOP : 置頂視窗
w x.FRAME_SHAP ED :用這個樣式建立的架構可以使用SetShape()方法去建立一個非矩形的視窗。
wx.FRAME_TOOL_WINDOW :通過給架構一個比正常更小的標題列,使架構看起來像一個工具框視窗。在Windows下,使用這個樣式建立的架構不會出現在顯示所有開啟視窗的工作列上。
wx.MAXIMIZE_BOX :指示系統在架構的標題列上顯示一個最大化框,使用系統預設的位置和樣式。
wx.MINIMIZE_BOX :指示系統在架構的標題列上顯示一個最小化框,使用系統預設的位置和樣式。
wx.RESIZE_BORDER :給架構增加一個可以改變尺寸的邊框。
wx.SIMPLE_BORDER :沒有裝飾的邊框。不能工作在所有平台上。
wx.SYSTEM_MENU :增加系統功能表(帶有關閉、移動、改變尺寸等功能)和關閉框到這個視窗。在系統功能表中的改變尺寸和關閉功能的有效性依賴於wx.MAXIMIZE_BOX, wx.MINIMIZE_BOX和wx.CLOSE_BOX樣式是否被應用。
wx.FRAME_EX_META :如果時在 MacOS 中,這個屬性用於是否顯示“金屬風格”
wx.FRAME_EX_CONTEXTHELP :是否有線上說明按鈕。
wx.FRAME_FLOAT_ON_PARENT :視窗是否顯示在最上層,與 wxSTAY_ON_TOP 不同,它必須有一個父視窗。

frame表單風格通過style屬性來設定,例如:
style=wx.SYSTEM_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.