python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
在了解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_博主推荐相关推荐
- 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 ...
- 子窗口控件 -windows程序设计(网易小海星的博客)
取父窗口的窗口句柄: hwndParent = GetParent (hwnd) ; 发送消息: SendMessage (hwndParent, message, wParam, lParam) ; ...
- python开发面试问题及答案_前50个Python面试问题(最受欢迎)
热门Python面试问答 下面列出的是关于Python编程语言的最常见面试问题和答案. 让我们探索!! #1)Python可以用于Web客户端和Web服务器端编程吗?哪一个最适合Python? 答案: ...
- python开发面试问题及答案_集锦 | 53个Python面试问题 答案打包带走
作者丨Chris来源丨AI科技大本营(ID:rgznai100)链接丨https://towardsdatascience.com/53-python-interview-questions-and- ...
- python tkinter选择路径控件_如何使用tkinter在Python中选择目录并存储位置
我正在创建一个带有浏览按钮的GUI,我只想返回路径.我一直在使用下面的代码来查找解决方案. Tkinter.Button(subframe, text = "Browse", co ...
- python开发gui网络ping测试_网络工程师使用python实践2_ping测试
背景介绍 在工作中,我们常常会遇到需要进行网络连通性测试,比如:网络割接后,需要ping大量的IP地址,并记录ping的结果.为了避免这种机械的工作,用python写了一个可以自动进行ping测试,并 ...
- java viewer 控件_插件制作过程记录(使用TreeViewer贡献视图)
使用TreeViewer贡献视图(根据<Eclipse入门到精通>中的例子进行的改编) 作者:李红霞 2005-8-13 本文章允许转载,但请要求注明文章作者及出处 一 创建插件项目 创建 ...
- firefox扩展开发(二):用XUL创建窗口控件
firefox扩展开发(二):用XUL创建窗口控件 2008-06-11 16:57 1.创建一个简单的窗口 <?xml version="1.0"?> <?xm ...
- firefox扩展开发(四) : 更多的窗口控件
firefox扩展开发(四) : 更多的窗口控件 2008-06-11 17:00 标签盒子 标签盒子是啥?大家都见过,就是分页标签: 对应的代码: <?xml version="1. ...
最新文章
- java单线程循环调度_Java基础篇之Java线程模型
- 你真以为你了解Javascript吗?来试试下面几个
- 都说dlib是人脸识别的神器,那到底能不能识破妖怪的伪装?
- 晶圆产能紧缺,成就华为的“无厂模式”反成败笔
- Timeline的Animation Track详解
- 11条规则教你如何玩转数据库设计
- Android studio 如何导入并引用Library工程
- arm 服务器cpu型号,挑战英特尔ARM Tilera发布36核服务器CPU
- 一位全减器逻辑电路图_半减器逻辑原理图 [全减器]
- Windows server 2008 如何下载镜像及其安装到VM内的步骤
- MacBook外接“键盘鼠标”设置经验
- 小程序之100推荐:801~900
- 天猫精灵智能设备对接(2)
- 硬币面值组合的算法题解
- 彻底解决不要脸的360更改浏览器主页【转载】
- 极兔快递单号查询API
- 探寻江南虞山之美 尽享与观致7的一场约会
- DO、DTO、BO、VO、POJO等各种O浅学(总结)
- 一起来看流星雨--------魏晨
- 2017lol服务器维修,LOL2017年8月15日更新维护到几点 8.15更新内容
热门文章
- 云服务器优势差别?三大主流云平台对比
- 华奥汽车安心延保技术分享webuploader文件的处理方式,华奥汽车安心延保给你看看如何与springmvc合并
- Android Notification 详解(各版本对比)——基本操作
- 华二紫竹2021年高考成绩查询时间,2019年华二紫竹升学数据分析!
- 戴尔台式计算机怎么拆卸两块侧板,高效易用 戴尔OptiPlex 7050商用台式机评测
- MATLAB数学建模 线性方程式与线性系统
- php 元旦祝福,简短祝福语八个字 元旦祝福语简短
- selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析
- Rebuttal得来的经验
- 数据分析统计知识—描述性统计