日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

wxpython制作表格界面_[Python] wxPython 菜单栏控件学习总结(原创)

發(fā)布時(shí)間:2024/9/27 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wxpython制作表格界面_[Python] wxPython 菜单栏控件学习总结(原创) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)的類型

①注冊(cè) 快捷鍵的方法 :參數(shù)text = "名稱/t快捷鍵"

比如 text = "Quit/tCtrl+Q"

這樣就注冊(cè)了 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 并注冊(cè)快捷鍵

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.普通編輯框 單行輸入的簡(jiǎn)單編輯框 (?為所在框的對(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)算,卻是我們?cè)谄綍r(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 菜单栏控件学习总结(原创)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。