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

article/2025/8/15 21:14:17

在了解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


http://chatgpt.dhexx.cn/article/5QVEALv1.shtml

相关文章

解决idel连接mysql数据库报错问题

使用idel来连接mysql数据库时出现: Server returns invalid timezone. Need to set ‘serverTimezone’ property报错信息。 查询相关资料后发现,我们本地使用的idel连接mysql时,使用的时区有问题而导致的报错。 解决方式: 修…

VUE与IDEL解决跨域问题

前言 跨域是浏览器对ajax请求的限制 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对js施加的安全限制。(ajax可以) 同源策略:是指协议,域名,端囗都要相同…

Python在IDLE中实现清屏和更改IDEL的shell的背景颜色

文章目录 更改IDEL的shell背景颜色在IDEL中实现清屏 今天才开始打算自学Python,刚装好的Python,使用IDEL的时候,发现白色的背景是在很闪眼睛,属实顶不住,然后就去问度娘,找到了以下的更改IDEL中的背景颜色&…

python的idel下添加清屏功能

第一步:下载文件ClearWindow.py (该文件可以在文章末尾网盘下载)第二步:找到目录 E:\python\Lib\idlelib (这个目录为python安装路径,比如我的安装路径为e:\python)第三步:将下载好的…

python 中设置IDEL快捷键清屏

1.通过下面这个链接下载到自己电脑的本地https://bugs.python.org/file14303/ClearWindow.py 将这个文本的后缀改为ClearWindow.py拷贝ClearWindow.py文件,放在Python安装目录Python XXX\Lib\idlelib下面(XXX为你的python版本)。记事本打开Py…

idel打开Run Dashboard

前言 在我用RabbitMQ整合SpringCloud的时候,要看运行效果时。发现没有了Run Dashboard。 这时候才想起之前弹过提示,也由于奈何是个英语傻瓜,就没注意,看着提示打眼就关了。害 如下提示弹框 打开直接选择第一个显示Run Dashboar…

idel安装lombok插件安装

1、点击file,选择setting 2、搜索安装插件 3、安装插件后使用lombok&#xff0c;引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>4、在实体类上加上Data注解&#xff0c;会自动…

STM32G707HAL库配置串口DMA和IDEL空闲中断接收不定字长数据

STM32G070串口DMA&IDEL配置 0、概述 在配置STM32G070RBT6进行串口通信功能时&#xff0c;如果尝试开启空闲中断进行不定长数据接收时&#xff0c;串口一旦接收到数据&#xff0c;就会一直卡在串口中断&#xff0c;无法进行其他操作。配置空闲中断的方法是按照F系列的HAL库…

Idel中maven全局配置

每次创建新项目&#xff0c;都要配置一遍maven&#xff0c;实在是麻烦。 所以&#xff0c;想到是否可以全局配置呢。 在File - Settings里没有找到相关内容。 方法&#xff1a; 关闭项目&#xff0c;在Idea的启动界面&#xff0c;右下角有个 【Configure】&#xff0c;进入【…

layers.Normalization

标准化&#xff0c;就是执行 特征标准化层&#xff0c; 第一种方式&#xff1a;通过数据计算出均值和方差&#xff1a; adapt_data np.array([[0., 7., 4.],[2., 9., 6.],[0., 7., 4.],[2., 9., 6.]], dtypefloat32) input_data np.array([[0., 7., 4.]], dtypefloat32) l…

Batch Normalization、Instance normalization简单理解

1. Batch Normalization 首先&#xff0c;简短介绍一下Batch Normalization&#xff0c;通常Batch Normalization更为大家所知&#xff0c;所以在此简要介绍BN来引入Instance Normalization。 引入BN层主要是为了解决"Internal Covariate Shift"问题&#xff0c;关…

Normalized Mutual information

在写论文做数据测试时有用到一个nmi(normalized mutual information)评价聚类的一种方法&#xff0c;不是很清楚&#xff0c;然后上网找了一下资料。 首先在理解nmi前&#xff0c;先说说mutual information这个东西。 我们先举个例子&#xff1a; 比如说&#xff0c;标准结果…

Cesium 定位到图层(ImageryLayer)报错 DeveloperError: normalized result is not a number

Cesium 定位到图层&#xff08;ImageryLayer&#xff09;报错 DeveloperError: normalized result is not a number 错误原因调试定位问题过程问题解决总结 2023年4月19日更新—搞了一个 Cesium 镜像&#xff0c;欢迎使用&#xff1a;沙盒示例 和 API 在使用 Cesium 封装代码的…

normalize 函数

2. normalize 函数介绍 函数原型&#xff1a; void normalize(InputArray src,OutputArray dst, double alpha1, doublebeta0, int norm_typeNORM_L2, int dtype-1, InputArray masknoArray() ) 该函数归一化输入数组使它的范数或者数值范围在一定的范围内。 Parameters: src …

(六)Normalization

&#xff08;六&#xff09;Normalization why 从图中可以看出&#xff0c;当输入太小或者太大的时候&#xff0c;函数的取值随着输入的变化几乎为0。这样就会发生梯度离散的情况&#xff0c;因此我们很有必要把输入控制在一个小一点的区间内。所以我们通过normalization操作&…

【C++】Eigen中norm、normalize、normalized的区别

参考&#xff1a; https://blog.csdn.net/m0_56348460/article/details/117386857https://blog.csdn.net/huangjunsheng123/article/details/119274776?spm1001.2101.3001.6650.7&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7E…

理解各种 Normalization

引言 Batch Normalization&#xff08;BN&#xff09;似乎已经成为构建网络不可缺少的一部分&#xff0c;它是如此“熟悉”以至于我天天使用却不明白原理。对此&#xff0c;本文梳理了 BN 的意义&#xff0c;实现以及一系列变体&#xff1a;Layer Norm&#xff0c;Instance No…

Layer Normalization解析

原论文名称&#xff1a;Layer Normalization 原论文地址&#xff1a; https://arxiv.org/abs/1607.06450 之前有讲过Batch Normalization的原理&#xff0c;链接&#xff0c;今天来简单讲讲Layer Normalization。Layer Normalization是针对自然语言处理领域提出的&#xff0c;…

Eigen中norm、normalize、normalized的区别

Eigen中norm、normalize、normalized的区别 norm() 对于Vector&#xff0c;norm返回的是向量的二范数&#xff0c;即 例如&#xff1a; Vector2d vec(3.0,4.0); cout << vec.norm() << endl; //输出5 对于Matrix&#xff0c;norm返回的是矩阵的弗罗贝尼乌斯范数…

归一化函数 normalized()

1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后&#xff08;通过某种算法&#xff09;限制在你需要的一定范围内。 首先归一化是为了后面数据处理的方便&#xff0c;其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间…