wxpython制作表格界面_[Python] wxPython 菜单栏控件学习总结(原创)
1、總結(jié)
1、大體創(chuàng)建過程
1、創(chuàng)建一個(gè) 菜單欄 : menuBar = wx.MenuBar()
相當(dāng)于這個(gè)白色地方,沒有File這個(gè)菜單
2、創(chuàng)建 菜單 : fileMenu = wx.Menu()
這兩個(gè)不是直接“用的”,叫菜單。既用來分類其他 菜單項(xiàng) 的文件夾樣
3、創(chuàng)建 菜單項(xiàng) : newItem = wx.MenuItem()
例如上圖的 New Copy Cut Paste Radio_One 等等等等。
這些可以直接“點(diǎn)”的(看作按鈕)的叫做 菜單項(xiàng)。
創(chuàng)建的時(shí)候需要分配 id (int 整數(shù)),到時(shí)候菜單事件處理的時(shí)候需要通過傳遞的 id (event.GetId())來判斷單擊的按鈕。
4、將 菜單項(xiàng) 添加到 菜單中 : fileMenu.AppendItem(newItem)
這樣當(dāng)我們單機(jī) File 的時(shí)候就會(huì)打開這個(gè)"文件夾"
并且展示內(nèi)容,添加多少就展示多少,并且按添加的順序展示
5、將 菜單 添加到 菜單欄 中 : menuBar.Append(fileMenu, title = "File")
之前我們只是構(gòu)建了一個(gè)上圖紅框+File菜單 的一個(gè)整體對(duì)象:fileMenu。
然后我們要把這個(gè) 菜單對(duì)象 添加到菜單欄中。
6、將該 菜單欄 設(shè)置為我們窗口框架的“菜單欄” : self.SetMenuBar(menuBar)
即將之前建立的 菜單欄對(duì)象 放到窗口上去。
7、綁定 菜單事件 : self.Bind(wx.EVT_MENT, self.menuHandler)
調(diào)用 Bind() 這個(gè)綁定事件的函數(shù),因?yàn)槠渌M件 比如按鈕 編輯框 都有事件。
所以這里的 wx.EVT_MENT 是表示綁定的是 菜單事件。
menuHandler() 是自定義函數(shù) 用來菜單事件。
id = event.GetId() 用來判斷單擊的 菜單項(xiàng)。
函數(shù)參數(shù)名稱:event 不能變,只能是這個(gè)單詞。
8、窗口框架的處理 : 與菜單欄無關(guān)了
例如 調(diào)整大小、出現(xiàn)位置、是否可見
2、各項(xiàng)詳解(參考其他)
1、用到的 class :
菜單欄 : wx.MenuBar 類
wx.MenuBar()
wx.MenuBar(n, menus, titles, style)
有一個(gè)參數(shù)的構(gòu)造函數(shù),此外還有一個(gè)默認(rèn)的。
參數(shù)“n”表示的菜單的數(shù)目。Menu是菜單和標(biāo)題的數(shù)組和字符串?dāng)?shù)組。如果style參數(shù)設(shè)置為wx.MB_DOCKABLE,菜單欄可以停靠。
菜單 : wx.Menu 類
wx.Menu類對(duì)象是一個(gè)或多個(gè)菜單項(xiàng),其中一個(gè)可被用戶選擇的下拉列表。
該開始 new 菜單對(duì)象的時(shí)候 只要 fileMenu = wx.Menu() 即可
之后添加菜單項(xiàng)目的時(shí)候,可直接使用 Append() 函數(shù)添加,或 wx.MenuItem 類的一個(gè)對(duì)象被追加。
wx.Menu.Append(id, text, kind)
Item = Wx.MenuItem(parentmenu, id, text, kind)
wx.Menu.Append(Item)
菜單項(xiàng):wx.MenuItem 類
當(dāng)我們 new 菜單項(xiàng)對(duì)象時(shí) 需要填幾個(gè)參數(shù)。
newItem = wx.MenuItem(parentMenu, id, text, kind)
其中 :
parentMenu 為其 菜單的對(duì)面,比如上文提到的 newMenu 菜單項(xiàng)的 parentMenu 為 fileMenu
id 為該菜單項(xiàng)的 id 到時(shí)候處理 菜單項(xiàng)時(shí)間的時(shí)候需要用到滴
text 為這個(gè)菜單項(xiàng)的名稱
kind 為該菜單項(xiàng)的類型
①注冊 快捷鍵的方法 :參數(shù)text = "名稱/t快捷鍵"
比如 text = "Quit/tCtrl+Q"
這樣就注冊了 Ctrl + Q 的快捷鍵
②其他類型菜單項(xiàng)的方法
菜單項(xiàng)有 3 種:
只需要 參數(shù) kind = 相關(guān)類型常量即可
2、感想
這個(gè)里面的很詳細(xì),且例子經(jīng)典。
o.o 要是先看不懂,就敲抄一邊會(huì)好很多。
關(guān)于wxPyton 中菜單欄的運(yùn)用的,以下代碼能夠很好的展示相關(guān)的操作方法。
3、樣例代碼
#coding:utf-8
#author:Twobox
import wx
class Mywin(wx.Frame):
def __init__(self, parent, title):
super(Mywin, self).__init__(parent, title = title)
self.InitUI()
def InitUI(self):
#創(chuàng)建一個(gè)菜單欄
menuBar = wx.MenuBar()
#創(chuàng)建一個(gè)菜單 1
fileMenu = wx.Menu()
#創(chuàng)建一個(gè)菜單項(xiàng) 1-1
newItem = wx.MenuItem(fileMenu, id = wx.ID_NEW, text = 'New', kind = wx.ITEM_NORMAL)
fileMenu.AppendItem(newItem)
#添加一行線
fileMenu.AppendSeparator()
#創(chuàng)建一個(gè)子菜單 1-2
editMenu = wx.Menu()
#創(chuàng)建三個(gè)子菜單的菜單項(xiàng)目 1-2-1 and 1-2-2 and 1-2-3
cutItem = wx.MenuItem(editMenu, id = 122, text = "Cut", kind = wx.ITEM_NORMAL)
copyItem = wx.MenuItem(editMenu, id = 121, text = "Copy", kind = wx.ITEM_NORMAL)
pasteItem = wx.MenuItem(editMenu, id = 123, text = "Paste", kind = wx.ITEM_NORMAL)
editMenu.AppendItem(copyItem)
editMenu.AppendItem(cutItem)
editMenu.AppendItem(pasteItem)
#把子菜單 1-2 添加到菜單 1 中
fileMenu.AppendMenu(wx.ID_ANY, "Edit", editMenu)
# 添加一行線
fileMenu.AppendSeparator()
#添加兩個(gè)單選框 1-3 and 1-4
radio1 = wx.MenuItem(fileMenu, id = 13, text = "Radio_One", kind = wx.ITEM_RADIO)
radio2 = wx.MenuItem(fileMenu, id = 14, text = "Radio_Two", kind = wx.ITEM_RADIO)
fileMenu.AppendItem(radio1)
fileMenu.AppendItem(radio2)
#PS.單選框 只在自己區(qū)域之間(兩行線之間) 相互作用
# 添加一行線
fileMenu.AppendSeparator()
#添加一個(gè) 可選中 的菜單項(xiàng) 1-5
fileMenu.AppendCheckItem(id = 15, item = "Check")
#添加一個(gè) 菜單項(xiàng) 1-6 并注冊快捷鍵
quit = wx.MenuItem(fileMenu, id = wx.ID_EXIT, text = "Quit\tCtrl+Q", kind = wx.ITEM_NORMAL)
fileMenu.AppendItem(quit)
#將 fileMenu 菜單添加到菜單欄中
menuBar.Append(fileMenu, title = 'File')
#設(shè)置窗口框架的菜單欄為 menuBar
self.SetMenuBar(menuBar)
#綁定事件處理
self.Bind(wx.EVT_MENU, self.menuHandler)
#讓其在屏幕中間打開調(diào)整大小展示
self.SetSize((300,400))
self.Centre()
self.Show()
def menuHandler(self, event):
id = event.GetId()
if id == wx.ID_NEW:
print("NEW")
if id == wx.ID_EXIT:
exit(0)
if __name__ == "__main__":
ex = wx.App()
Mywin(None, 'Menu - Test')
#Mywin(None, 'Menu - Test') #可以同時(shí)打開兩個(gè)窗口 果然體現(xiàn)面向?qū)ο蟮某绦蜷_發(fā)思想
ex.MainLoop()
2017-08-20 14:21:26
[Python] wxPython 基本控件 (轉(zhuǎn))
轉(zhuǎn)自:http://www.cnblogs.com/wangjian8888/p/6028777.html 一.靜態(tài)文本控件 wx.StaticText(parent, id, label, pos= ...
[Python] wxPython 編輯框組件學(xué)習(xí)總結(jié) (原創(chuàng))
1.總結(jié) 1.常用4種 編輯框 的構(gòu)造 1.普通編輯框 單行輸入的簡單編輯框 (?為所在框的對(duì)象,同下) self.textBox = wx.TextCtrl(parent = ?) 2.密碼編輯框 ...
python之Tkinter控件學(xué)習(xí)
轉(zhuǎn)載自 ?http://www.cnblogs.com/kaituorensheng/p/3287652.html#_label0 閱讀目錄 1.?產(chǎn)品介紹 2.?設(shè)計(jì)規(guī)劃 3. 相關(guān)知識(shí) 4. 源碼 ...
Python Tkinter 基礎(chǔ)控件學(xué)習(xí)
# -*- coding: utf-8 -*- from Tkinter import * def btn_click(): b2['text'] = 'clicked' evalue = e.get ...
wxPython控件學(xué)習(xí)之wx.grid.Grid 表格控件
wxPython控件學(xué)習(xí)之wx.grid.Grid (包括對(duì)GridCellEditor和GridCelRender的擴(kuò)展,以支持更多的grid cell 樣式, 以GridCellColorEdit ...
轉(zhuǎn))delphi chrome cef3 控件學(xué)習(xí)筆記 (二)
(轉(zhuǎn))delphi chrome cef3 控件學(xué)習(xí)筆記 (二) https://blog.csdn.net/risesoft2012/article/details/51260832 原創(chuàng)?2016 ...
IOS學(xué)習(xí)筆記(四)之UITextField和UITextView控件學(xué)習(xí)
IOS學(xué)習(xí)筆記(四)之UITextField和UITextView控件學(xué)習(xí)(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
DevExpress控件學(xué)習(xí)總結(jié)(轉(zhuǎn))
DevExpress控件學(xué)習(xí)總結(jié) ? 1.Navigation?&?Layout 1.1?Bar?Manager 如果想在窗體或用戶控件(user?control)上添加工具條(bars)或彈 ...
Python Tkinter基礎(chǔ)控件入門實(shí)例
分享一個(gè)Python Tkinter基礎(chǔ)控件用法的入門例子,包括窗口的顯示.顯示內(nèi)置圖片.彈出窗口.菜單等. 例子,Python Tkinter基礎(chǔ)控件的用法 # -*- coding: utf-8 ...
隨機(jī)推薦
mac的webdriver自動(dòng)化
下載webdriver-chrome的連接:http://chromedriver.storage.googleapis.com/index.html
MVVM小記
這篇小記源自于codeproject上的一篇文章?http://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explai ...
深入理解計(jì)算機(jī)系統(tǒng)(2.2)---布爾代數(shù)以及C語言上的位運(yùn)算
布爾代數(shù)上的位運(yùn)算 布爾代數(shù)是一個(gè)數(shù)學(xué)知識(shí)體系,它在0和1的二進(jìn)制值上演化而來的. 我們不需要去徹底的了解這個(gè)知識(shí)體系,但是里面定義了幾種二進(jìn)制的運(yùn)算,卻是我們在平時(shí)的編程過程當(dāng)中也會(huì)遇到的.這四種運(yùn) ...
JS中的集中頁面跳轉(zhuǎn)的方法
第一種:???
style中position的屬性值具體解釋
Position的英文原意是指位置.職位.狀態(tài).也有安置的意思.在CSS布局中,Position發(fā)揮著非常關(guān)鍵的數(shù)據(jù),非常多容器的定位是用Position來完畢. Position屬性有四個(gè)可選值,它 ...
渲染函數(shù)render和函數(shù)式組件
vnode對(duì)象 vnode對(duì)象包括(vnode并不是vue實(shí)例,而是vue實(shí)例中渲染函數(shù)render執(zhí)行后生成的結(jié)果) this.tag = tag // 當(dāng)前節(jié)點(diǎn)標(biāo)簽名 this.data = da ...
cookie、localStorage、sessionStorage的區(qū)別
localStorage - 沒有時(shí)間限制的數(shù)據(jù)存儲(chǔ) sessionStorage - 針對(duì)一個(gè) session 的數(shù)據(jù)存儲(chǔ) 共同點(diǎn):sessionStorage.localStorage和cooki ...
Visual Studio 2017 + Python3.6安裝scipy庫
Windows10下安裝scipy很麻煩,直接在命令行下使用pip install scipy無法安裝,但可以借助VS2017的集成環(huán)境來安裝. (1)首先在Visual Studio Install ...
How to calculate elapsed / execute time in Java
How to calculate elapsed / execute time in JavaIn Java, you can use the following ways to measure el ...
總結(jié)
以上是生活随笔為你收集整理的wxpython制作表格界面_[Python] wxPython 菜单栏控件学习总结(原创)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas filter_数据分析之P
- 下一篇: 网站服务器断电后果,数据库服务器突然断电