在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识

下面是python的API文档中的一个简单例子:

 import tkinter as tk

 class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.pack()
self.createWidgets() def createWidgets(self):
self.hi_there = tk.Button(self)
self.hi_there["text"] = "Hello World\n(click me)"
self.hi_there["command"] = self.say_hi
self.hi_there.pack(side="top") self.QUIT = tk.Button(self, text="QUIT", fg="red",
command=root.destroy)
self.QUIT.pack(side="bottom") def say_hi(self):
print("hi there, everyone!") root = tk.Tk()
app = Application(master=root)
app.mainloop()

运行效果:

当点击'Hello World(click me)'按钮的时候,打印出:'hi there, everyone!'

当点击'QUIT'按钮的时候,退出窗口程序。

我想现在你对python的tkinter模块有一点的认识了...这是好事儿...

下面是我做的demo

运行效果:

1.点击‘New Window’菜单选项,打印出:'New Window       Ctrl+N'信息

2.点击''About IDEL'菜单选项,在窗体中打印作者相关信息

3.点击‘Exit’菜单项,退出窗口程序

==============================================================

代码部分:

==============================================================

 # -*- coding: UTF-8 -*-
#python tkinter menu
#python version 3.3.2
#EN = Window 7 from tkinter import *
'''
在python 3.3.2中,tkinter模块可以创建一个窗口控件,如Java中的Swing
功能描述:
根据Python 3.3.2 IDEL的菜单,创建出一个tkinter窗口
File-Exit : 退出功能完成
Help-About IDEL : 打印相应信息
其他的菜单项,当点击时,会打印出相应菜单项的名称
''' __author__ = 'Hongten'
MENU_ITEMS = ['File', 'Edit', 'Format', 'Run', 'Options', 'Windows', 'Help']
#菜单File中的选项
MENU_FILE_ITEMS = ['New Window Ctrl+N ',
'Open... Ctrl+O ',
'Recent Files ',
'Open Module... Alt+M ',
'Class Browser Alt+C ',
'Path Browser ',
'Save Ctrl+S ',
'Save As... Ctrl+Shift+S',
'Save Copy As... Ctrl+Alt+S ',
'Print Window Ctrl+P ',
'Close Alt+F4 ',
'Exit Ctrl+Q ']
#菜单Edit中的选项
MENU_EDIT_ITEMS = ['Undo Ctrl+Z ',
'Redo Ctrl+Shift+Z ',
'Cut Ctrl+X ',
'Copy Ctrl+C ',
'Paste Ctrl+V ',
'Select All Ctrl+A ',
'Find... Ctrl+F ',
'Find Again Ctrl+G ',
'Find Selections Ctrl+F3 ',
'Find in Files Alt+F3 ',
'Replace... Ctrl+H ',
'Go to Line Alt+G ',
'Expend Word Alt+/ ',
'Show call tip Ctrl+backslash',
'Show surerounding parens Ctrl+0 ',
'Show Completions Ctrl+space ']
#菜单Format中的选项
MENU_FORMAT_ITEMS = ['Check Module Alt+X ',
'Ident Region Ctrl+] ',
'Dedent Region Ctrl+[ ',
'Commemt Out Region Alt+3 ',
'Uncomment Region Alt+4 ',
'Tabify Region Alt+5 ',
'Untabify Region Alt+6 ',
'Toggle Tabs Alt+T ',
'New Ident Width Alt+U ',
'Format Paragraph Alt+Q ',
'Strip trailing whitespace ']
#菜单Run中的选项
MENU_RUN_ITEMS = [ 'Python Shell ',
'Check Module Alt+X ',
'Run Module F5 ']
#菜单Options中的选项
MENU_OPTIONS_ITEMS = ['Config IDEL... ',
'Code Context ']
#菜单Windows中的选项
MENU_WINDOWS_ITEMS = ['Zoom Height Alt+2 ']
#菜单Help中的选项
MENU_HELP_ITEMS = ['About IDEL ',
'IDEL Help ',
'Python Docs F1 ']
#help-About IDEL
ABOUT_MESSAGE = '''
Author : Hongten
Author_email : hongtenzone@foxmail.com
Blog : http://www.cnblogs.com/hongten
QQ : 648719819
Created : 2013-09-05
Version : 1.0
'''
def get_tk():
'''获取一个Tk对象'''
return Tk() def set_tk_title(tk, title):
'''给窗口定义title'''
if title is not None and title != '':
tk.title(title)
else:
tk.title('Hongten v1.0') def set_tk_geometry(tk, size):
'''设置窗口大小,size的格式为:widthxheight,如:size = '200x100'.'''
if size is not None and size != '':
tk.geometry(size)
else:
tk.geometry('670x600') def get_menu(tk):
'''获取一个菜单条'''
return Menu(tk) def menu_file(menubar):
'''定义菜单File'''
filemenu = Menu(menubar, tearoff=1)
filemenu.add_command(label=MENU_FILE_ITEMS[0], command=lambda:print(MENU_FILE_ITEMS[0]))
filemenu.add_command(label=MENU_FILE_ITEMS[1], command=lambda:print(MENU_FILE_ITEMS[1]))
filemenu.add_command(label=MENU_FILE_ITEMS[2], command=lambda:print(MENU_FILE_ITEMS[2])) filemenu.add_command(label=MENU_FILE_ITEMS[3], command=lambda:print(MENU_FILE_ITEMS[3]))
filemenu.add_command(label=MENU_FILE_ITEMS[4], command=lambda:print(MENU_FILE_ITEMS[4]))
filemenu.add_command(label=MENU_FILE_ITEMS[5], command=lambda:print(MENU_FILE_ITEMS[5]))
filemenu.add_separator()
filemenu.add_command(label=MENU_FILE_ITEMS[6], command=lambda:print(MENU_FILE_ITEMS[6]))
filemenu.add_command(label=MENU_FILE_ITEMS[7], command=lambda:print(MENU_FILE_ITEMS[7]))
filemenu.add_command(label=MENU_FILE_ITEMS[8], command=lambda:print(MENU_FILE_ITEMS[8]))
filemenu.add_separator()
filemenu.add_command(label=MENU_FILE_ITEMS[9], command=lambda:print(MENU_FILE_ITEMS[9]))
filemenu.add_separator()
filemenu.add_command(label=MENU_FILE_ITEMS[10], command=lambda:print(MENU_FILE_ITEMS[10]))
filemenu.add_command(label=MENU_FILE_ITEMS[11], command=root.destroy)
menubar.add_cascade(label=MENU_ITEMS[0], menu=filemenu) def menu_edit(menubar):
'''定义菜单Edit'''
edit_menu = Menu(menubar, tearoff=1)
edit_menu.add_command(label=MENU_EDIT_ITEMS[0], command=lambda:print(MENU_EDIT_ITEMS[0]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[1], command=lambda:print(MENU_EDIT_ITEMS[1]))
edit_menu.add_separator()
edit_menu.add_command(label=MENU_EDIT_ITEMS[2], command=lambda:print(MENU_EDIT_ITEMS[2]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[3], command=lambda:print(MENU_EDIT_ITEMS[3]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[4], command=lambda:print(MENU_EDIT_ITEMS[4]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[5], command=lambda:print(MENU_EDIT_ITEMS[5]))
edit_menu.add_separator()
edit_menu.add_command(label=MENU_EDIT_ITEMS[6], command=lambda:print(MENU_EDIT_ITEMS[6]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[7], command=lambda:print(MENU_EDIT_ITEMS[7]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[8], command=lambda:print(MENU_EDIT_ITEMS[8]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[9], command=lambda:print(MENU_EDIT_ITEMS[9]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[10], command=lambda:print(MENU_EDIT_ITEMS[10]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[11], command=lambda:print(MENU_EDIT_ITEMS[11]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[12], command=lambda:print(MENU_EDIT_ITEMS[12]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[13], command=lambda:print(MENU_EDIT_ITEMS[13]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[14], command=lambda:print(MENU_EDIT_ITEMS[14]))
edit_menu.add_command(label=MENU_EDIT_ITEMS[15], command=lambda:print(MENU_EDIT_ITEMS[15]))
menubar.add_cascade(label=MENU_ITEMS[1], menu=edit_menu) def menu_format(menubar):
'''定义菜单Format'''
format_menu = Menu(menubar, tearoff=1)
format_menu.add_command(label=MENU_FORMAT_ITEMS[0], command=lambda:print(MENU_FORMAT_ITEMS[0]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[1], command=lambda:print(MENU_FORMAT_ITEMS[1]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[2], command=lambda:print(MENU_FORMAT_ITEMS[2]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[3], command=lambda:print(MENU_FORMAT_ITEMS[3]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[4], command=lambda:print(MENU_FORMAT_ITEMS[4]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[5], command=lambda:print(MENU_FORMAT_ITEMS[5]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[6], command=lambda:print(MENU_FORMAT_ITEMS[6]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[7], command=lambda:print(MENU_FORMAT_ITEMS[7]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[8], command=lambda:print(MENU_FORMAT_ITEMS[8]))
format_menu.add_command(label=MENU_FORMAT_ITEMS[9], command=lambda:print(MENU_FORMAT_ITEMS[9]))
format_menu.add_separator()
format_menu.add_command(label=MENU_FORMAT_ITEMS[10], command=lambda:print(MENU_FORMAT_ITEMS[10]))
menubar.add_cascade(label=MENU_ITEMS[2], menu=format_menu) def menu_run(menubar):
'''定义菜单Run'''
run_menu = Menu(menubar, tearoff=1)
run_menu.add_command(label=MENU_RUN_ITEMS[0], command=lambda:print(MENU_RUN_ITEMS[0]))
run_menu.add_separator()
run_menu.add_command(label=MENU_RUN_ITEMS[1], command=lambda:print(MENU_RUN_ITEMS[1]))
run_menu.add_command(label=MENU_RUN_ITEMS[2], command=lambda:print(MENU_RUN_ITEMS[2]))
menubar.add_cascade(label=MENU_ITEMS[-4], menu=run_menu) def meun_options(menubar):
'''定义菜单Options'''
options_menu = Menu(menubar, tearoff=1)
options_menu.add_command(label=MENU_OPTIONS_ITEMS[0], command=lambda:print(MENU_OPTIONS_ITEMS[0]))
options_menu.add_separator()
options_menu.add_command(label=MENU_OPTIONS_ITEMS[1], command=lambda:print(MENU_OPTIONS_ITEMS[1]))
menubar.add_cascade(label=MENU_ITEMS[-3], menu=options_menu) def menu_windows(menubar):
'''定义菜单Windows'''
windows_menu = Menu(menubar, tearoff=1)
windows_menu.add_command(label=MENU_WINDOWS_ITEMS[0], command=lambda:print(MENU_WINDOWS_ITEMS[0]))
windows_menu.add_separator()
menubar.add_cascade(label=MENU_ITEMS[-2], menu=windows_menu) def meun_help(menubar):
'''定义菜单Help'''
help_menu = Menu(menubar, tearoff=1)
help_menu.add_command(label=MENU_HELP_ITEMS[0], command=about_idel)
help_menu.add_separator()
help_menu.add_command(label=MENU_HELP_ITEMS[1], command=lambda:print(MENU_HELP_ITEMS[1]))
help_menu.add_command(label=MENU_HELP_ITEMS[2], command=lambda:print(MENU_HELP_ITEMS[2]))
menubar.add_cascade(label=MENU_ITEMS[-1], menu=help_menu) def about_idel():
'''Help-About IDEL function'''
label = Label(root, text=ABOUT_MESSAGE, fg='red')
label.pack(side='top') def init_menu_bar(menubar):
'''初始化菜单条'''
menu_file(menubar) #file
menu_edit(menubar) #edit
menu_format(menubar) #format
menu_run(menubar) #run
meun_options(menubar) #options
menu_windows(menubar) #windows
meun_help(menubar) #help #获得窗口对象
root = get_tk()
#设置窗口大小
set_tk_geometry(root, '')
#设置窗口title
set_tk_title(root, 'Python 3.3.2 Shell')
#获取菜单对象
menubar = get_menu(root)
#初始化菜单
init_menu_bar(menubar)
#加载菜单配置
root.config(menu=menubar) mainloop()

========================================================

More reading,and english is important.

I'm Hongten

大哥哥大姐姐,觉得有用打赏点哦!多多少少没关系,一分也是对我的支持和鼓励。谢谢。
Hongten博客排名在100名以内。粉丝过千。
Hongten出品,必是精品。

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

========================================================

python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐的更多相关文章

  1. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)

    在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...

  2. python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  3. python开发_tkinter_单选菜单_不可用菜单操作

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  4. python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐

    我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...

  5. python开发_tkinter_获取单选菜单值

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  6. python开发_tkinter_多级子菜单

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  7. python开发_tkinter_复选菜单

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  8. firefox扩展开发(二):用XUL创建窗口控件

    firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...

  9. WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用

    WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用 转自:http://www.cnblogs.com/wuhuacong/arch ...

随机推荐

  1. 22 Gobs of data 设计和使用采集数据的包

    Gobs of data 24 March 2011 Introduction To transmit a data structure across a network or to store it ...

  2. ArcMap2SLD添加中文支持

    首先,你可以从作者提供的链接下载ArcMap2SLD.zip(支持ArcMap10.2) 1.打开LUT_sld_mapping_file.xml文件(上传文件中已经修改)修改文件<LUT> ...

  3. css-概述和选择器

    一:CSS 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与 ...

  4. 关于SizeOf、Length

    结论: 到底什么时候用Length,SizeOf呢,我总结下使用Length,Sizeof的场景 1.Length(静态数组或动态数组)----没有问题 2.Length(string/shortst ...

  5. Kafka ACL使用实战(单机版)

    一.简介 自0.9.0.0.版本引入Security之后,Kafka一直在完善security的功能.当前Kafka security主要包含3大功能:认证(authentication).信道加密( ...

  6. 适合新手的web开发环境

    学习web开发,环境搭建是必不可少的一个环节.你可以使用wamp一键安装包,或者使用sae.bae.gae这种PaaS平台来部署,或者安装*nix系统在本地部署. 对于一个希望体验LAMP式建站的新手 ...

  7. WINDOWS 2008 采用IP策略解决445,139等病毒攻击问题

    @echo off title 创建IP安全策略,屏蔽135.. . . . 等端口 :: 配置说明文档地址 :: http://blog.csdn.net/lpc_china/article/det ...

  8. 关于ARM指令那些你必须知道的东西

    1.32位ARM指令每一位都有其作用,具体如下: 低12为第二操作数, 12~15位为目的寄存器, 16~19位为第一操作数, 20~27就是操作码, 28~31就是条件域. 2.多寄存器load和s ...

  9. 非ROOT用户不能识别声卡问题

    将非ROOT用户加入到audio组中即可 sudo usermod -a -G audio usrname

  10. MFC+WinPcap编写一个嗅探器之四(获取模块)

    这一节主要介绍如何获取设备列表,比较简单 获取设备列表主要是在CAdpDlg中完成,也就是对应之前创建的选择适配器模块,如图: 当打开选择适配器对话框后,在列表视图控件中显示当前主机所有适配器及适配器 ...