Python创建普通菜单示例【基于win32ui模块】

yipeiwu_com5年前Python基础

本文实例讲述了Python创建普通菜单的方法。分享给大家供大家参考,具体如下:

一、代码

# -*- coding:utf-8 -*-
#! python3
import win32ui
import win32api
from win32con import *
from pywin.mfc import window
class MyWnd(window.Wnd):
  def __init__ (self):
    window.Wnd.__init__(self,win32ui.CreateWnd())
    self._obj_.CreateWindowEx(WS_EX_CLIENTEDGE,\
                 win32ui.RegisterWndClass(0,0,COLOR_WINDOW+1),\
                 'www.jb51.net - MFC GUI',WS_OVERLAPPEDWINDOW,\
                 (10,10,800,800),None,0,None)
    submenu = win32ui.CreateMenu()
    menu = win32ui.CreateMenu()
    submenu.AppendMenu(MF_STRING,1051,'&Open')
    submenu.AppendMenu(MF_STRING,1052,'&Close')
    submenu.AppendMenu(MF_STRING,1053,'&Save')
    menu.AppendMenu(MF_STRING|MF_POPUP,submenu.GetHandle(),'&File')
    submenu = win32ui.CreateMenu()
    submenu.AppendMenu(MF_STRING,1054,'&Copy')
    submenu.AppendMenu(MF_STRING,1055,'&Paste')
    submenu.AppendMenu(MF_STRING,1056,None)
    submenu.AppendMenu(MF_STRING,1057,'&Cut')
    menu.AppendMenu(MF_STRING|MF_POPUP,submenu.GetHandle(),'&Edit')
    submenu = win32ui.CreateMenu()
    submenu.AppendMenu(MF_STRING,1058,'Tools')
    submenu.AppendMenu(MF_STRING|MF_GRAYED,1059,'Setting')
    m = win32ui.CreateMenu()
    m.AppendMenu(MF_STRING|MF_POPUP|MF_CHECKED,submenu.GetHandle(),'Option')
    menu.AppendMenu(MF_STRING|MF_POPUP,m.GetHandle(),'&Other')
    self._obj_.SetMenu(menu)
  def OnClose(self):
    self.EndModalLoop(0)
w = MyWnd()
w.ShowWindow()
w.UpdateWindow()
w.RunModalLoop(1)

二、运行效果:

注:win32ui模块的安装可直接使用pip命令,如下:

pip install pypiwin32

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python比较2个时间大小的实现方法

Python中有time和datetime,不过二者都直接取出日期和时间。 当需要比较2个时间的先后时,这两个类的函数都显得有些过于复杂。因为它们都带上了日期。 如果仅想比较时间,取出当...

Pycharm 实现下一个文件引用另外一个文件的方法

Pycharm 实现下一个文件引用另外一个文件的方法

换了个电脑重新安装了Anaconda和Pycharm,把原来的项目导进去之后,有几个文件用到了另外几个文件里面的东西,引用老是报错。 如下图的位置,我这里已经修复了所以没看到标红啦:...

Python如何基于rsa模块实现非对称加密与解密

这篇文章主要介绍了Python如何基于rsa模块实现非对称加密与解密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、简单介绍: R...

python中文乱码不着急,先看懂字节和字符

Python2.x使用过程中,中文乱码解决最耳熟能详的方法就是在代码前加上#-*- coding:utf-8 –*- 那么为什么需要这么做呢?什么又是字节和字符?下面我们了解下。 我来讲...

使用sklearn之LabelEncoder将Label标准化的方法

LabelEncoder可以将标签分配一个0—n_classes-1之间的编码 将各种标签分配一个可数的连续编号: >>> from sklearn import...