欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python圖形開發(fā)GUI庫wxpython使用方法詳解

 更新時間:2020年02月14日 15:44:12   作者:Return Home苦逼工程師  
這篇文章主要介紹了python GUI庫wxpython使用方法詳解,需要的朋友可以參考下

一、python gui(圖形化)模塊介紹:

  Tkinter :是python最簡單的圖形化模塊,總共只有14種組建

  Pyqt     :是python最復雜也是使用最廣泛的圖形化

  Wx       :是python當中居中的一個圖形化,學習結(jié)構(gòu)很清晰

  Pywin   :是python windows 下的模塊,攝像頭控制(opencv),常用于外掛制作

二、wx模塊的安裝:

C:\Users\Administrator> pip install wxpython

三、圖形化介紹

 

四、wx主要組件介紹

1、frame(窗口)

參數(shù):

parent = None #父元素,假如為None,代表頂級窗口

id = None #組件的標識,唯一,假如id為-1代表系統(tǒng)分配id

title = None #窗口組件的名稱

pos = None #組件的位置,就是組件左上角點距離父組件或者桌面左和上的距離

size = None #組件的尺寸,寬高

style = None #組件的樣式

name = None #組件的名稱,也是用來標識組件的,但是用于傳值

2、TextCtrl(文本框)

參數(shù):

parent = None #父元素,假如為None,代表頂級窗口

id = None #組件的標識,唯一,假如id為-1代表系統(tǒng)分配id

value = None   #文本框當中的內(nèi)容

         GetValue #獲取文本框的值

         SetValue #設(shè)置文本框的值

pos = None #組件的位置,就是組件左上角點距離父組件或者桌面左和上的距離

size = None #組件的尺寸,寬高

style = None #組件的樣式

validator = None #驗證

name = None #組件的名稱,也是用來標識組件的,但是用于傳值

3、Button(按鈕)

參數(shù):

parent = None #父元素,假如為None,代表頂級窗口

id = None #組件的標識,唯一,假如id為-1代表系統(tǒng)分配id

lable = None #按鈕的標簽

pos = None #組件的位置,就是組件左上角點距離父組件或者桌面左和上的距離

size = None #組件的尺寸,寬高

style = None #組件的樣式

validator = None #驗證

name = None #組件的名稱,也是用來標識組件的,但是用于傳值

其它組件的參數(shù)類似

4、創(chuàng)建窗口基礎(chǔ)代碼

基本創(chuàng)建窗口代碼說明:

import wx #引入wx模塊
app = wx.App() #實例化一個主循環(huán)<br>
frame = wx.Frame(None) #實例化一個窗口<br>
frame.Show()#調(diào)用窗口展示功能<br>
app.MainLoop()#啟動主循環(huán)

效果如下圖:

五、Gui編寫簡單實例

實現(xiàn)如下一個GUI界面,在上面文本框中輸入文本文件地址,點擊“打開”按鈕后將文本文件內(nèi)容顯示在下面的文本框中。

1、圖形化編寫

import wx
 
app = wx.App()
frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400))
 
path_text = wx.TextCtrl(frame,pos = (5,5),size = (350,24))
open_button = wx.Button(frame,label = "打開",pos = (370,5),size = (50,24))
save_button = wx.Button(frame,label = "保存",pos = (430,5),size = (50,24))
content_text= wx.TextCtrl(frame,pos = (5,39),size = (475,300),style = wx.TE_MULTILINE) # wx.TE_MULTILINE可以實現(xiàn)換行功能,若不加此功能文本文檔顯示為一行顯示
frame.Show() app.MainLoop()

2、事件綁定

1、定義事件函數(shù)

事件函數(shù)有且只有一個參數(shù),叫event

def openfile(event):
  path = path_text.GetValue()
  with open(path,"r",encoding="utf-8") as f: #encoding 設(shè)置文件打開時指定為utf8編碼,避免寫文件時出現(xiàn)編碼錯誤
    content_text.SetValue(f.read())

2、綁定出發(fā)事件的條件和組件

open_button.Bind(wx.EVT_BUTTON,openfile)

3、完整代碼

#coding:utf-8
import wx
 
def openfile(event):   # 定義打開文件事件
  path = path_text.GetValue()
  with open(path,"r",encoding="utf-8") as f: # encoding參數(shù)是為了在打開文件時將編碼轉(zhuǎn)為utf8
    content_text.SetValue(f.read())
 
app = wx.App()
frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400))
 
path_text = wx.TextCtrl(frame,pos = (5,5),size = (350,24))
open_button = wx.Button(frame,label = "打開",pos = (370,5),size = (50,24))
open_button.Bind(wx.EVT_BUTTON,openfile)  # 綁定打開文件事件到open_button按鈕上
 
save_button = wx.Button(frame,label = "保存",pos = (430,5),size = (50,24))
 
content_text= wx.TextCtrl(frame,pos = (5,39),size = (475,300),style = wx.TE_MULTILINE)
# wx.TE_MULTILINE可以實現(xiàn)以滾動條方式多行顯示文本,若不加此功能文本文檔顯示為一行
 
frame.Show()
app.MainLoop()

六、尺寸器

按照上面的GUI代碼有一個缺陷,由于我們各個組件都固定了大小,因此在框體拉伸時,對應的組件不會對應進行拉伸,比較影響用戶體驗。

為了解決上述這個問題,我們可以使用尺寸器進行布局,類似于HTML的CSS樣式。

1、BoxSizer(尺寸器)

  • 尺寸器作用于畫布(panel)
  • 默認水平布局
  • 垂直布局可以調(diào)整
  • 按照相對比例

2、步驟

  • 實例化尺寸器(可以是多個)
  • 添加組件到不同尺寸器中
  • 設(shè)置相對比例、填充的樣式和方向、邊框等參數(shù)
  • 設(shè)置主尺寸器

3、將上面代碼通過尺寸器改寫

#coding:utf-8
import wx
 
def openfile(event):   # 定義打開文件事件
  path = path_text.GetValue()
  with open(path,"r",encoding="utf-8") as f: # encoding參數(shù)是為了在打開文件時將編碼轉(zhuǎn)為utf8
    content_text.SetValue(f.read())
 
app = wx.App()
frame = wx.Frame(None,title = "Gui Test Editor",pos = (1000,200),size = (500,400))
 
panel = wx.Panel(frame)
 
path_text = wx.TextCtrl(panel)
open_button = wx.Button(panel,label = "打開")
open_button.Bind(wx.EVT_BUTTON,openfile)  # 綁定打開文件事件到open_button按鈕上
 
save_button = wx.Button(panel,label = "保存")
 
content_text= wx.TextCtrl(panel,style = wx.TE_MULTILINE)
# wx.TE_MULTILINE可以實現(xiàn)以滾動條方式多行顯示文本,若不加此功能文本文檔顯示為一行
 
box = wx.BoxSizer() # 不帶參數(shù)表示默認實例化一個水平尺寸器
box.Add(path_text,proportion = 5,flag = wx.EXPAND|wx.ALL,border = 3) # 添加組件
  #proportion:相對比例
  #flag:填充的樣式和方向,wx.EXPAND為完整填充,wx.ALL為填充的方向
  #border:邊框
box.Add(open_button,proportion = 2,flag = wx.EXPAND|wx.ALL,border = 3) # 添加組件
box.Add(save_button,proportion = 2,flag = wx.EXPAND|wx.ALL,border = 3) # 添加組件
 
v_box = wx.BoxSizer(wx.VERTICAL) # wx.VERTICAL參數(shù)表示實例化一個垂直尺寸器
v_box.Add(box,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 3) # 添加組件
v_box.Add(content_text,proportion = 5,flag = wx.EXPAND|wx.ALL,border = 3) # 添加組件
 
panel.SetSizer(v_box) # 設(shè)置主尺寸器
 
frame.Show()
app.MainLoop()

通過尺寸器進行布局,無論寬體如何拉伸,內(nèi)部的組件都會按比例進行變化。

更多關(guān)于python圖形開發(fā)GUI庫wxpython使用方法請查看下面的相關(guān)鏈接

相關(guān)文章

  • python 5個實用的技巧

    python 5個實用的技巧

    這篇文章主要介紹了python 5個實用的技巧,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python批量檢查兩個對應的txt文件的行數(shù)是否一致的實例代碼

    python批量檢查兩個對應的txt文件的行數(shù)是否一致的實例代碼

    這篇文章主要介紹了python批量檢查兩個對應的txt文件的行數(shù)是否一致,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • python連接mongodb密碼認證實例

    python連接mongodb密碼認證實例

    今天小編就為大家分享一篇python連接mongodb密碼認證實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 解決Jupyter 文件路徑的問題

    解決Jupyter 文件路徑的問題

    這篇文章主要介紹了解決Jupyter 文件路徑的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python PaddleOCR庫用法及知識點詳解

    python PaddleOCR庫用法及知識點詳解

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python PaddleOCR庫用法及知識點詳解內(nèi)容,對此有需要的朋友們可以學習參考下。
    2021-07-07
  • python實現(xiàn)excel轉(zhuǎn)置問題詳解

    python實現(xiàn)excel轉(zhuǎn)置問題詳解

    這篇文章主要介紹了python實現(xiàn)excel轉(zhuǎn)置問題詳解,excel轉(zhuǎn)置分為兩種情況,一個是較為簡單的只需要行轉(zhuǎn)列,列轉(zhuǎn)行,具體詳解,感興趣的小伙伴可以參考一下
    2022-09-09
  • Python 正則 re.compile 真的必需嗎

    Python 正則 re.compile 真的必需嗎

    本文主要介紹了Python 正則 re.compile 真的必需嗎,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • pyQT5 實現(xiàn)窗體之間傳值的示例

    pyQT5 實現(xiàn)窗體之間傳值的示例

    今天小編就為大家分享一篇pyQT5 實現(xiàn)窗體之間傳值的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python導入坐標點的具體操作

    python導入坐標點的具體操作

    在本篇文章里小編給大家分享了關(guān)于python導入坐標點的具體操作步驟和圖解,有需要的朋友們跟著學習下。
    2019-05-05
  • python3新特性函數(shù)注釋Function Annotations用法分析

    python3新特性函數(shù)注釋Function Annotations用法分析

    這篇文章主要介紹了python3新特性函數(shù)注釋Function Annotations用法,結(jié)合實例形式分析了Python3函數(shù)注釋的定義方法與使用技巧,需要的朋友可以參考下
    2016-07-07

最新評論