1. 程式人生 > >wxPython:圖示、選單、加速鍵、訊息框

wxPython:圖示、選單、加速鍵、訊息框

執行結果展示


# _*_coding:utf-8_*_

import wx

import os

os.chdir('C:\Users\FXJ\Desktop' + u'\課程\多平臺應用開發\作業' + '\wxPython\lab04')

class MyFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, -1, u"第4次上機作業(WX)", size=(800, 500))
        self.panel = wx.Panel(self)

        self.icon1 = wx.Icon(name="icon1.ico",  type=wx.BITMAP_TYPE_ICO)
        self.icon2 = wx.Icon(name="icon2.ico", type=wx.BITMAP_TYPE_ICO)
        self.icon3 = wx.Icon(name="icon3.ico", type=wx.BITMAP_TYPE_ICO)
        self.SetIcon(self.icon1)
        self.word = wx.StaticText(self.panel, -1, u"", pos=(200, 100))
        self.word.SetLabel(u"當前使用的圖示是:圖示1")
        self.word.SetFont(wx.Font(15, wx.SWISS, wx.NORMAL, wx.BOLD, False))

        # Create the MenuBar
        self.menuBar = wx.MenuBar()

        # and a menu
        menu = wx.Menu()
        menu.Append(wx.ID_EXIT, u"E&xit\tCtrl+Shift+Delete", u"Exit this simple sample")
        # bind the menu event to an event handler
        self.Bind(wx.EVT_MENU, self.OnClose, id=wx.ID_EXIT)
        # and put the menu on the MenuBar
        self.menuBar.Append(menu, u"&File")

        # add a icon menu
        self.icon = wx.Menu()
        self.icon.Append(201, u"圖示1\tCtrl+1", u"", wx.ITEM_RADIO)
        self.icon.Append(202, u"圖示2\tCtrl+2", u"", wx.ITEM_RADIO)
        self.icon.Append(203, u"圖示3\tCtrl+3", u"", wx.ITEM_RADIO)

        self.iSelectIcon = 201
        self.Bind(wx.EVT_MENU_RANGE, self.OnIcon, id=201, id2=203)
        self.menuBar.Append(self.icon,u"圖示(&I)")
        self.menuBar.Check(self.iSelectIcon,True)
        self.SetBackgroundColour(u"Gray")

        self.show = wx.Menu()
        self.show.Append(301, u"顯示1\tCtrl+Shift+1", u"", wx.ITEM_CHECK)
        self.show.Append(302, u"顯示2\tCtrl+Shift+2", u"", wx.ITEM_CHECK)
        self.show.Append(303, u"顯示3\tCtrl+Shift+3", u"", wx.ITEM_CHECK)
        self.show.Append(304, u"顯示4\tCtrl+Shift+4", u"", wx.ITEM_CHECK)

        # 建立空列表s,在s裡面新增4個wx.StaticText用來顯示文字
        self.s= []
        self.s.append(wx.StaticText(self.panel, -1, u"", pos=(300, 200)))
        self.s.append(wx.StaticText(self.panel, -1, u"", pos=(400, 200)))
        self.s.append(wx.StaticText(self.panel, -1, u"", pos=(300, 250)))
        self.s.append(wx.StaticText(self.panel, -1, u"", pos=(400, 250)))

        self.menuBar.Append(self.show,u"顯示(&D)")
        self.Bind(wx.EVT_MENU, self.OnShow, id=301, id2=304)
        self.iSelectShow = [False, False, False, False]


        # add another menu
        menu = wx.Menu()
        IdAbout = menu.Append(-1, u"程式資訊(&I)\tF1", u"Help tip")
        self.Bind(wx.EVT_MENU, self.OnHelp, IdAbout)

        # and put the menu on the menubar
        self.menuBar.Append(menu, u"關於(&A)")
        self.SetMenuBar(self.menuBar)

        self.CreateStatusBar()
        self.Bind(wx.EVT_PAINT, self.OnPaint)


    def OnIcon(self, evt):
        item = evt.GetId()
        # word =wx.StaticText(self.panel, -1, u"", pos=(200, 100))
        if(wx.MessageBox(u"確定要修改麼?", u"Confirmation", wx.YES_NO | wx.ICON_INFORMATION, self) == wx.YES):
            if(item == 201):
                self.SetIcon(self.icon1)
                self.iSelectIcon=201
                self.word.SetLabel(u"當前使用的圖示是:圖示1")
                self.GetMenuBar().EnableTop(2, True)
            elif(item==202):
                self.SetIcon(self.icon2)
                self.iSelectIcon=202
                self.word.SetLabel(u"當前使用的圖示是:圖示2")
                self.GetMenuBar().EnableTop(2, True)
            else:
                self.SetIcon(self.icon3)
                self.iSelectIcon=203
                self.word.SetLabel(u"當前使用的圖示是:圖示3")
                # 灰化第2個選單項(顯示)
                self.GetMenuBar().EnableTop(2,False)
        # 如果確認修改圖示點否,恢復先前選擇
        else:
            self.menuBar.Check(self.iSelectIcon, True)
        self.Refresh()

    def OnShow(self, evt):
        item = evt.GetId() - 301
        self.iSelectShow[item] = not self.iSelectShow[item]

        if(self.iSelectShow[item]):
            self.s[item].SetLabel(u"顯示"+str(item+1))
        else:
            self.s[item].SetLabel(u"")
        self.Refresh()

    def OnHelp(self, evt):
        wx.MessageBox(u"第4次上機練習(WX)\n圖示、選單、加速鍵、訊息框\n\n學號:***********\n姓名:***",
                      u"Lab4(WX)", wx.OK | wx.ICON_INFORMATION, self)

    def OnClose(self, evt):
        self.Close()


if __name__ == u'__main__':
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Show(True)
    app.MainLoop()

相關推薦

wxPython圖示選單加速訊息

執行結果展示 # _*_coding:utf-8_*_ import wx import os os.chdir('C:\Users\FXJ\Desktop' + u'\課程\多平臺應用開發\作業' + '\wxPython\lab04') class MyFr

MFC對話方塊程式載入選單加速工具欄

MFC中程式分為三種:多文件程式、單文件程式和對話方塊程式,其中多文件和單文件程式預設帶有選單、加速鍵以及工具欄,下面介紹對話方塊程式中載入選單、加速鍵和工具欄的方法。首先,新建一個對話方塊的程式,名

17APLab4圖標菜單加速消息 python

main %d The onpaint box append int ebo delete 要求如下: 圖標: 使用17APLab3自己畫的圖標 菜單: 動態設計一個菜單控制動態改變圖標(3選1單選),在四個位置顯示文字(復選),“關於”加速鍵

Linux基礎命令(四)高階鍵盤操作與許可權控制——history自動補全命令列快捷歷史命令展開idchmodumasksusudochownchgrppasswd

高階鍵盤操作 Linux終端支援各種快捷鍵操作。掌握這些快捷鍵以及命令列互動式編輯特性,基本可以告別滑鼠操作了。 clear - 清空螢幕 history - 顯示歷史列表內容 小技巧:Linux的圖形使用者介面中,非最大化的視窗是預設隱藏頂部選項卡的,可以通過保持按

mysql數據庫基礎(2)索引復合主

刪除表 工資 adb birt column 參考 ext 賦值 var 增、刪、改、查 加“”表示為普通字符 mysql> insert into t9 values("NULL",21,"game,flim"); ++++++++++++++++++++++++

WIN32彙編 選單加速的使用

一.首先是選單加速鍵資原始檔:#define ICO_MAIN 4096 #define IDM_MAIN 8192 #define IDM_OPEN 16641 #define IDM_OPTION 16642 #define IDM_EXIT 16643 #define

Win32彙編--如何使用資源 [選單加速]

使用資源 —— 選單和加速鍵   主選單,頂層選單,彈出式選單,子選單,右鍵彈出式選單,系統彈出式選單。選單中的選單項有好幾種,從資源定義的角度來看,分隔用的橫線也是一個選單項,除橫線外其他選單項可以供使用者選擇,也可以設定為“禁止”或“灰化”狀態暫時停用。   選單

Linux終端下或Vim下進行拷貝貼上的快捷組合

在linux終端、控制檯中,我們常常需要使用拷貝、貼上功能,但是由於Ctrl+C被連結到了鍵盤訊號,因此簡單的Ctrl+C/Ctrl+V將不能使用,因此需要使用其它的拷貝貼上方法。 注意:在vim中優先使用vim自帶的拷貝貼上命令 拷貝快捷鍵:Ctrl+In

第三次課Pycharm參數設置常用快捷調試方法

pycharm為提高編碼的逼格,加快編碼的效率,PyCharm的一些常用快捷操作方式我們是要掌握的,下面就羅列一下使用頻率很高的快捷方法:Ctrl + Alt + Space 快速導入任意類Ctrl + Shift + Enter 語句完成(當你完成一個語句,尤其是函數或方法編寫,此時光標還在括

【第三章】字段約束數據完整性非空默認值自增唯一性

索引 記錄 incr efault 主鍵 pri 增長 不可 作用 一、表完整性約束 作用:用於保證數據的完整性和一致性==============================================================約束條件        

sublime3使用自定義快捷外掛安裝語法校驗(css和js)

1.快捷鍵大全: https://mp.csdn.net/postedit/84336764 2.新增快捷鍵: 例:ctrl+q 開啟sublime編輯器 preference>>key bindings-user>>編輯設定文件, 輸入 { "key

開發前期必須準備的利器開發原型圖UI圖工具pxCook圖示寫介面文件程式碼託管等...

開發前期必準備的效率工具: 開發原型圖:Auxure https://www.axure.com.cn/axure/course/ ui圖量尺寸、標註尺寸 Pxcook’ http://www.fancynode.com.cn/pxcook 找圖示 inconfont

Android開發如何在選單中呼叫控制元件(如ButtonTextView……)

當我們在類內定義控制元件的全域性變數時,如Button……,只能在onCreate()中初始化,這樣的控制元件變數引用在選單中不好引用,會報錯。 如果想在選單中呼叫控制元件,可以在選單中重新定義控制元件

去除右選單中圖形屬性圖形選項

操作環境:win10 64位系統 操作方法: 1、開啟pcmaster.exe,在介面底部應用大全裡第一行可找到 設定大師,或者直接在綠色版的資料夾裡找winmaster.exe,雙擊啟動即可。 2、選擇頂部右側“右鍵選單”。 3、選擇左側“檔案物件關聯選單”

MySQL04---資料完整性(非空唯一check預設值外來約束),級聯設定,表自增列

一、資料完整性 1.概念:指資料能正確反映實際情況 2.分類 實體完整性:識別符號或主鍵完整性(主鍵、唯一值約束) 域完整性:限制資料型別、格式、取值範圍(檢查、預設值、外來鍵約束) 引用完整性:輸入或刪除時,不能存在引用不存在的值(外來鍵約束) 自定義完整性

Chrome快捷大全Chrome視窗和標籤頁快捷功能快捷網頁快捷

一、Chrome視窗和標籤頁快捷鍵 Ctrl+U 檢視原始碼 Ctrl+T 開啟新標籤頁 Ctrl+Shift+N 在隱身模式下開啟新視窗 Ctrl+O,然後選擇檔案 在谷歌瀏覽器中開啟計算機中的檔案 按住 Ctrl? 鍵,然後點選連結 在新標籤頁中開啟連結 Ctrl+Sh

(轉)IHS配置安全漏洞 支援不推薦使用的 SSL 版本在降級的舊加密上填充 Oracle檢測到 RC4 密碼套件支援弱 SSL 密碼套件 重構 RSA 匯出(又稱為 FREAK)

原文:https://blog.csdn.net/lyd135364/article/details/52179426 都是由於ihs配置中支援不推薦使用的ssl版本和弱密碼套件引起的。 只要在配置檔案中禁用sslv2,sslv3和申明使用的非弱密碼套件即可,在/opt/IBM/HTTPServer/co

40個js小技巧:遮蔽滑鼠右取消選取防止複製貼上轉換位址列圖示

來源:http://www.cnblogs.com/aliang1992/p/6279291.html 1. oncontextmenu="window.event.returnValue=false" 將徹底遮蔽滑鼠右鍵 <table border oncont

MySQL聯合主索引

MySQL資料庫用聯合主鍵。用兩張表測試。 # 1分鐘資料表 CREATE TABLE md_1min2( `d_1min` DATETIME(3), `code` CHAR(16), `open` FLOAT, `high` FLOAT, `low` FLOAT, `c

VSCode外掛開發全攻略(四)命令選單快捷

命令 我們在前面HelloWord章節中已經提到了命令寫法,這裡再重溫一下。 context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => { vscode.window.showI