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

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

 1 import tkinter as tk
 2
 3 class Application(tk.Frame):
 4     def __init__(self, master=None):
 5         tk.Frame.__init__(self, master)
 6         self.pack()
 7         self.createWidgets()
 8
 9     def createWidgets(self):
10         self.hi_there = tk.Button(self)
11         self.hi_there["text"] = "Hello World\n(click me)"
12         self.hi_there["command"] = self.say_hi
13         self.hi_there.pack(side="top")
14
15         self.QUIT = tk.Button(self, text="QUIT", fg="red",
16                                             command=root.destroy)
17         self.QUIT.pack(side="bottom")
18
19     def say_hi(self):
20         print("hi there, everyone!")
21
22 root = tk.Tk()
23 app = Application(master=root)
24 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’菜单项,退出窗口程序

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

代码部分:

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

  1 # -*- coding: UTF-8 -*-
  2 #python tkinter menu
  3 #python version 3.3.2
  4 #EN = Window 7
  5
  6
  7 from tkinter import *
  8 '''
  9     在python 3.3.2中,tkinter模块可以创建一个窗口控件,如Java中的Swing
 10     功能描述:
 11         根据Python 3.3.2 IDEL的菜单,创建出一个tkinter窗口
 12         File-Exit    :  退出功能完成
 13         Help-About IDEL     : 打印相应信息
 14         其他的菜单项,当点击时,会打印出相应菜单项的名称
 15 '''
 16
 17 __author__ = 'Hongten'
 18 MENU_ITEMS = ['File', 'Edit', 'Format', 'Run', 'Options', 'Windows', 'Help']
 19 #菜单File中的选项
 20 MENU_FILE_ITEMS = ['New Window      Ctrl+N      ',
 21                    'Open...         Ctrl+O      ',
 22                    'Recent Files                ',
 23                    'Open Module...  Alt+M       ',
 24                    'Class Browser   Alt+C       ',
 25                    'Path Browser                ',
 26                    'Save            Ctrl+S      ',
 27                    'Save As...      Ctrl+Shift+S',
 28                    'Save Copy As... Ctrl+Alt+S  ',
 29                    'Print Window    Ctrl+P      ',
 30                    'Close           Alt+F4      ',
 31                    'Exit            Ctrl+Q      ']
 32 #菜单Edit中的选项
 33 MENU_EDIT_ITEMS = ['Undo                     Ctrl+Z        ',
 34                    'Redo                     Ctrl+Shift+Z  ',
 35                    'Cut                      Ctrl+X        ',
 36                    'Copy                     Ctrl+C        ',
 37                    'Paste                    Ctrl+V        ',
 38                    'Select All               Ctrl+A        ',
 39                    'Find...                  Ctrl+F        ',
 40                    'Find Again               Ctrl+G        ',
 41                    'Find Selections          Ctrl+F3       ',
 42                    'Find in Files            Alt+F3        ',
 43                    'Replace...               Ctrl+H        ',
 44                    'Go to Line               Alt+G         ',
 45                    'Expend Word              Alt+/         ',
 46                    'Show call tip            Ctrl+backslash',
 47                    'Show surerounding parens Ctrl+0        ',
 48                    'Show Completions         Ctrl+space    ']
 49 #菜单Format中的选项
 50 MENU_FORMAT_ITEMS = ['Check Module        Alt+X   ',
 51                    'Ident Region        Ctrl+]  ',
 52                    'Dedent Region       Ctrl+[  ',
 53                    'Commemt Out Region  Alt+3   ',
 54                    'Uncomment Region    Alt+4   ',
 55                    'Tabify Region       Alt+5   ',
 56                    'Untabify Region     Alt+6   ',
 57                    'Toggle Tabs         Alt+T   ',
 58                    'New Ident Width     Alt+U   ',
 59                    'Format Paragraph    Alt+Q   ',
 60                    'Strip trailing whitespace   ']
 61 #菜单Run中的选项
 62 MENU_RUN_ITEMS = [ 'Python Shell                ',
 63                    'Check Module    Alt+X       ',
 64                    'Run Module      F5          ']
 65 #菜单Options中的选项
 66 MENU_OPTIONS_ITEMS = ['Config IDEL...              ',
 67                    'Code Context                ']
 68 #菜单Windows中的选项
 69 MENU_WINDOWS_ITEMS = ['Zoom Height     Alt+2       ']
 70 #菜单Help中的选项
 71 MENU_HELP_ITEMS = ['About IDEL                  ',
 72                    'IDEL Help                   ',
 73                    'Python Docs     F1          ']
 74 #help-About IDEL
 75 ABOUT_MESSAGE = '''
 76     Author       : Hongten
 77     Author_email : hongtenzone@foxmail.com
 78     Blog         : http://www.cnblogs.com/hongten
 79     QQ           : 648719819
 80     Created      : 2013-09-05
 81     Version      : 1.0
 82     '''
 83 def get_tk():
 84     '''获取一个Tk对象'''
 85     return Tk()
 86
 87 def set_tk_title(tk, title):
 88     '''给窗口定义title'''
 89     if title is not None and title != '':
 90         tk.title(title)
 91     else:
 92         tk.title('Hongten v1.0')
 93
 94 def set_tk_geometry(tk, size):
 95     '''设置窗口大小,size的格式为:widthxheight,如:size = '200x100'.'''
 96     if size is not None and size != '':
 97         tk.geometry(size)
 98     else:
 99         tk.geometry('670x600')
100
101 def get_menu(tk):
102     '''获取一个菜单条'''
103     return Menu(tk)
104
105 def menu_file(menubar):
106     '''定义菜单File'''
107     filemenu = Menu(menubar, tearoff=1)
108     filemenu.add_command(label=MENU_FILE_ITEMS[0], command=lambda:print(MENU_FILE_ITEMS[0]))
109     filemenu.add_command(label=MENU_FILE_ITEMS[1], command=lambda:print(MENU_FILE_ITEMS[1]))
110     filemenu.add_command(label=MENU_FILE_ITEMS[2], command=lambda:print(MENU_FILE_ITEMS[2]))
111
112     filemenu.add_command(label=MENU_FILE_ITEMS[3], command=lambda:print(MENU_FILE_ITEMS[3]))
113     filemenu.add_command(label=MENU_FILE_ITEMS[4], command=lambda:print(MENU_FILE_ITEMS[4]))
114     filemenu.add_command(label=MENU_FILE_ITEMS[5], command=lambda:print(MENU_FILE_ITEMS[5]))
115     filemenu.add_separator()
116     filemenu.add_command(label=MENU_FILE_ITEMS[6], command=lambda:print(MENU_FILE_ITEMS[6]))
117     filemenu.add_command(label=MENU_FILE_ITEMS[7], command=lambda:print(MENU_FILE_ITEMS[7]))
118     filemenu.add_command(label=MENU_FILE_ITEMS[8], command=lambda:print(MENU_FILE_ITEMS[8]))
119     filemenu.add_separator()
120     filemenu.add_command(label=MENU_FILE_ITEMS[9], command=lambda:print(MENU_FILE_ITEMS[9]))
121     filemenu.add_separator()
122     filemenu.add_command(label=MENU_FILE_ITEMS[10], command=lambda:print(MENU_FILE_ITEMS[10]))
123     filemenu.add_command(label=MENU_FILE_ITEMS[11], command=root.destroy)
124     menubar.add_cascade(label=MENU_ITEMS[0], menu=filemenu)
125
126 def menu_edit(menubar):
127     '''定义菜单Edit'''
128     edit_menu = Menu(menubar, tearoff=1)
129     edit_menu.add_command(label=MENU_EDIT_ITEMS[0], command=lambda:print(MENU_EDIT_ITEMS[0]))
130     edit_menu.add_command(label=MENU_EDIT_ITEMS[1], command=lambda:print(MENU_EDIT_ITEMS[1]))
131     edit_menu.add_separator()
132     edit_menu.add_command(label=MENU_EDIT_ITEMS[2], command=lambda:print(MENU_EDIT_ITEMS[2]))
133     edit_menu.add_command(label=MENU_EDIT_ITEMS[3], command=lambda:print(MENU_EDIT_ITEMS[3]))
134     edit_menu.add_command(label=MENU_EDIT_ITEMS[4], command=lambda:print(MENU_EDIT_ITEMS[4]))
135     edit_menu.add_command(label=MENU_EDIT_ITEMS[5], command=lambda:print(MENU_EDIT_ITEMS[5]))
136     edit_menu.add_separator()
137     edit_menu.add_command(label=MENU_EDIT_ITEMS[6], command=lambda:print(MENU_EDIT_ITEMS[6]))
138     edit_menu.add_command(label=MENU_EDIT_ITEMS[7], command=lambda:print(MENU_EDIT_ITEMS[7]))
139     edit_menu.add_command(label=MENU_EDIT_ITEMS[8], command=lambda:print(MENU_EDIT_ITEMS[8]))
140     edit_menu.add_command(label=MENU_EDIT_ITEMS[9], command=lambda:print(MENU_EDIT_ITEMS[9]))
141     edit_menu.add_command(label=MENU_EDIT_ITEMS[10], command=lambda:print(MENU_EDIT_ITEMS[10]))
142     edit_menu.add_command(label=MENU_EDIT_ITEMS[11], command=lambda:print(MENU_EDIT_ITEMS[11]))
143     edit_menu.add_command(label=MENU_EDIT_ITEMS[12], command=lambda:print(MENU_EDIT_ITEMS[12]))
144     edit_menu.add_command(label=MENU_EDIT_ITEMS[13], command=lambda:print(MENU_EDIT_ITEMS[13]))
145     edit_menu.add_command(label=MENU_EDIT_ITEMS[14], command=lambda:print(MENU_EDIT_ITEMS[14]))
146     edit_menu.add_command(label=MENU_EDIT_ITEMS[15], command=lambda:print(MENU_EDIT_ITEMS[15]))
147     menubar.add_cascade(label=MENU_ITEMS[1], menu=edit_menu)
148
149 def menu_format(menubar):
150     '''定义菜单Format'''
151     format_menu = Menu(menubar, tearoff=1)
152     format_menu.add_command(label=MENU_FORMAT_ITEMS[0], command=lambda:print(MENU_FORMAT_ITEMS[0]))
153     format_menu.add_command(label=MENU_FORMAT_ITEMS[1], command=lambda:print(MENU_FORMAT_ITEMS[1]))
154     format_menu.add_command(label=MENU_FORMAT_ITEMS[2], command=lambda:print(MENU_FORMAT_ITEMS[2]))
155     format_menu.add_command(label=MENU_FORMAT_ITEMS[3], command=lambda:print(MENU_FORMAT_ITEMS[3]))
156     format_menu.add_command(label=MENU_FORMAT_ITEMS[4], command=lambda:print(MENU_FORMAT_ITEMS[4]))
157     format_menu.add_command(label=MENU_FORMAT_ITEMS[5], command=lambda:print(MENU_FORMAT_ITEMS[5]))
158     format_menu.add_command(label=MENU_FORMAT_ITEMS[6], command=lambda:print(MENU_FORMAT_ITEMS[6]))
159     format_menu.add_command(label=MENU_FORMAT_ITEMS[7], command=lambda:print(MENU_FORMAT_ITEMS[7]))
160     format_menu.add_command(label=MENU_FORMAT_ITEMS[8], command=lambda:print(MENU_FORMAT_ITEMS[8]))
161     format_menu.add_command(label=MENU_FORMAT_ITEMS[9], command=lambda:print(MENU_FORMAT_ITEMS[9]))
162     format_menu.add_separator()
163     format_menu.add_command(label=MENU_FORMAT_ITEMS[10], command=lambda:print(MENU_FORMAT_ITEMS[10]))
164     menubar.add_cascade(label=MENU_ITEMS[2], menu=format_menu)
165
166 def menu_run(menubar):
167     '''定义菜单Run'''
168     run_menu = Menu(menubar, tearoff=1)
169     run_menu.add_command(label=MENU_RUN_ITEMS[0], command=lambda:print(MENU_RUN_ITEMS[0]))
170     run_menu.add_separator()
171     run_menu.add_command(label=MENU_RUN_ITEMS[1], command=lambda:print(MENU_RUN_ITEMS[1]))
172     run_menu.add_command(label=MENU_RUN_ITEMS[2], command=lambda:print(MENU_RUN_ITEMS[2]))
173     menubar.add_cascade(label=MENU_ITEMS[-4], menu=run_menu)
174
175 def meun_options(menubar):
176     '''定义菜单Options'''
177     options_menu = Menu(menubar, tearoff=1)
178     options_menu.add_command(label=MENU_OPTIONS_ITEMS[0], command=lambda:print(MENU_OPTIONS_ITEMS[0]))
179     options_menu.add_separator()
180     options_menu.add_command(label=MENU_OPTIONS_ITEMS[1], command=lambda:print(MENU_OPTIONS_ITEMS[1]))
181     menubar.add_cascade(label=MENU_ITEMS[-3], menu=options_menu)
182
183 def menu_windows(menubar):
184     '''定义菜单Windows'''
185     windows_menu = Menu(menubar, tearoff=1)
186     windows_menu.add_command(label=MENU_WINDOWS_ITEMS[0], command=lambda:print(MENU_WINDOWS_ITEMS[0]))
187     windows_menu.add_separator()
188     menubar.add_cascade(label=MENU_ITEMS[-2], menu=windows_menu)
189
190 def meun_help(menubar):
191     '''定义菜单Help'''
192     help_menu = Menu(menubar, tearoff=1)
193     help_menu.add_command(label=MENU_HELP_ITEMS[0], command=about_idel)
194     help_menu.add_separator()
195     help_menu.add_command(label=MENU_HELP_ITEMS[1], command=lambda:print(MENU_HELP_ITEMS[1]))
196     help_menu.add_command(label=MENU_HELP_ITEMS[2], command=lambda:print(MENU_HELP_ITEMS[2]))
197     menubar.add_cascade(label=MENU_ITEMS[-1], menu=help_menu)
198
199 def about_idel():
200     '''Help-About IDEL function'''
201     label = Label(root, text=ABOUT_MESSAGE, fg='red')
202     label.pack(side='top')
203
204 def init_menu_bar(menubar):
205     '''初始化菜单条'''
206     menu_file(menubar)     #file
207     menu_edit(menubar)     #edit
208     menu_format(menubar)   #format
209     menu_run(menubar)      #run
210     meun_options(menubar)  #options
211     menu_windows(menubar)  #windows
212     meun_help(menubar)     #help
213
214 #获得窗口对象
215 root = get_tk()
216 #设置窗口大小
217 set_tk_geometry(root, '')
218 #设置窗口title
219 set_tk_title(root, 'Python 3.3.2 Shell')
220 #获取菜单对象
221 menubar = get_menu(root)
222 #初始化菜单
223 init_menu_bar(menubar)
224 #加载菜单配置
225 root.config(menu=menubar)
226
227 mainloop()

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

More reading,and english is important.

I'm Hongten

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

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

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

转载于:https://www.cnblogs.com/hongten/p/hongten_python_tkinter_idel.html

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

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

    1 #-*- coding: UTF-8 -*- 2 #python tkinter menu 3 #python version 3.3.2 4 #EN = Window 7 5 6 7 from ...

  2. 子窗口控件 -windows程序设计(网易小海星的博客)

    取父窗口的窗口句柄: hwndParent = GetParent (hwnd) ; 发送消息: SendMessage (hwndParent, message, wParam, lParam) ; ...

  3. python开发面试问题及答案_前50个Python面试问题(最受欢迎)

    热门Python面试问答 下面列出的是关于Python编程语言的最常见面试问题和答案. 让我们探索!! #1)Python可以用于Web客户端和Web服务器端编程吗?哪一个最适合Python? 答案: ...

  4. python开发面试问题及答案_集锦 | 53个Python面试问题 答案打包带走

    作者丨Chris来源丨AI科技大本营(ID:rgznai100)链接丨https://towardsdatascience.com/53-python-interview-questions-and- ...

  5. python tkinter选择路径控件_如何使用tkinter在Python中选择目录并存储位置

    我正在创建一个带有浏览按钮的GUI,我只想返回路径.我一直在使用下面的代码来查找解决方案. Tkinter.Button(subframe, text = "Browse", co ...

  6. python开发gui网络ping测试_网络工程师使用python实践2_ping测试

    背景介绍 在工作中,我们常常会遇到需要进行网络连通性测试,比如:网络割接后,需要ping大量的IP地址,并记录ping的结果.为了避免这种机械的工作,用python写了一个可以自动进行ping测试,并 ...

  7. java viewer 控件_插件制作过程记录(使用TreeViewer贡献视图)

    使用TreeViewer贡献视图(根据<Eclipse入门到精通>中的例子进行的改编) 作者:李红霞 2005-8-13 本文章允许转载,但请要求注明文章作者及出处 一 创建插件项目 创建 ...

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

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

  9. firefox扩展开发(四) : 更多的窗口控件

    firefox扩展开发(四) : 更多的窗口控件 2008-06-11 17:00 标签盒子 标签盒子是啥?大家都见过,就是分页标签: 对应的代码: <?xml version="1. ...

最新文章

  1. java单线程循环调度_Java基础篇之Java线程模型
  2. 你真以为你了解Javascript吗?来试试下面几个
  3. 都说dlib是人脸识别的神器,那到底能不能识破妖怪的伪装?
  4. 晶圆产能紧缺,成就华为的“无厂模式”反成败笔
  5. Timeline的Animation Track详解
  6. 11条规则教你如何玩转数据库设计
  7. Android studio 如何导入并引用Library工程
  8. arm 服务器cpu型号,挑战英特尔ARM Tilera发布36核服务器CPU
  9. 一位全减器逻辑电路图_半减器逻辑原理图 [全减器]
  10. Windows server 2008 如何下载镜像及其安装到VM内的步骤
  11. MacBook外接“键盘鼠标”设置经验
  12. 小程序之100推荐:801~900
  13. 天猫精灵智能设备对接(2)
  14. 硬币面值组合的算法题解
  15. 彻底解决不要脸的360更改浏览器主页【转载】
  16. 极兔快递单号查询API
  17. 探寻江南虞山之美 尽享与观致7的一场约会
  18. DO、DTO、BO、VO、POJO等各种O浅学(总结)
  19. 一起来看流星雨--------魏晨
  20. 2017lol服务器维修,LOL2017年8月15日更新维护到几点 8.15更新内容

热门文章

  1. 云服务器优势差别?三大主流云平台对比
  2. 华奥汽车安心延保技术分享webuploader文件的处理方式,华奥汽车安心延保给你看看如何与springmvc合并
  3. Android Notification 详解(各版本对比)——基本操作
  4. 华二紫竹2021年高考成绩查询时间,2019年华二紫竹升学数据分析!
  5. 戴尔台式计算机怎么拆卸两块侧板,高效易用 戴尔OptiPlex 7050商用台式机评测
  6. MATLAB数学建模 线性方程式与线性系统
  7. php 元旦祝福,简短祝福语八个字 元旦祝福语简短
  8. selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析
  9. Rebuttal得来的经验
  10. 数据分析统计知识—描述性统计