首页 > 编程语言 >Python Tkinter Menu

Python Tkinter Menu

时间:2023-04-10 10:33:07浏览次数:35  
标签:Tkinter Python Menu self window add frame1 side LEFT

 

 

 

 

 

from tkinter import *

## 编写一个简易的加减法计算器程序
## 把实现的功能都封装到一个类里面
class Calculator: # 类 Calculator
    def __init__(self): # 构造函数,实例化对象时自动执行这个函数

        window = Tk() # 新建一个Tkinter的窗体window
        window.title("-----Mini Calculator-----") # 窗体标题
        # Create a menu bar
        menubar = Menu(window) #创建菜单,父容器为window
        window.config(menu = menubar) # config可以设置tkinter组件的样式参数(https://www.cnblogs.com/emanlee/p/17301878.html)。Display the menu bar
        # create a pulldown menu, and add it to the menu bar
        operationMenu = Menu(menubar, tearoff = 0) # 在menubar上建菜单operationMenu,tearoff = 0表示菜单无法单独显示 (https://www.cnblogs.com/emanlee/p/17301927.html)
        menubar.add_cascade(label = "Operation", menu = operationMenu) # 以级联形式添加菜单
        operationMenu.add_command(label = "Add", command = self.add) # 添加菜单项,菜单显示文本"Add",单击执行self.add
        operationMenu.add_separator() # 添加分割线
        operationMenu.add_command(label = "Subtract", command = self.subtract)# 添加菜单项,菜单显示文本"Subtract",单击执行self.subtract
        # create more pulldown menus
        exitmenu = Menu(menubar, tearoff = 0)
        menubar.add_cascade ( label = "Exit", menu = exitmenu )
        exitmenu.add_command ( label = "Quit", command = window.destroy )
        # Add a tool bar frame
        frame0 = Frame(window) # Frame是一种容器 Create and add a frame to window
        frame0.grid(row = 1, column = 1, sticky = W) # 把frame0放到window的1行1列位置;参见 https://www.cnblogs.com/emanlee/p/15340537.html
        # Add labels and entries to frame1
        frame1 = Frame ( window )
        frame1.grid ( row = 2, column = 1, pady = 10 ) # 把frame1放到window的2行1列位置;
        Label ( frame1, text = "Number 1:" ).pack ( side = LEFT ) # Label 的文本为 "Number 1:",放置到左边  https://www.cnblogs.com/emanlee/p/15340485.html
        self.v1 = StringVar ( value = '0' ) # https://www.cnblogs.com/emanlee/p/16090048.html
        Entry(frame1, width = 5, textvariable = self.v1, justify = RIGHT).pack(side=LEFT)
        Label ( frame1, text = "Number 2:" ).pack(side = LEFT )
        self.v2 = StringVar ( value = '0' )
        Entry(frame1,width = 5, textvariable = self.v2, justify = RIGHT).pack(side=LEFT)
        Label ( frame1, text = "Result:" ).pack(side = LEFT )
        self.v3 = StringVar ( value = '0' )
        Entry(frame1,width = 5, textvariable = self.v3, justify = RIGHT ).pack(side=LEFT)

        # Add buttons to frame2
        frame2 = Frame(window) # Create and add a frame to window
        frame2.grid(row = 3, column = 1, pady = 10, sticky = E )
        Button(frame2, text = "Add", command = self.add ).pack( side = LEFT )
        Button(frame2, text = "Subtract", command = self.subtract ).pack( side = LEFT )
        mainloop()

    def add(self):
        self.v3.set ( eval ( self.v1.get() ) + eval ( self.v2.get() ) )

    def subtract(self):
        number1 = eval ( self.v1.get() )
        number2 = eval ( self.v2.get() )
        self.v3.set ( number1 - number2 )

Calculator() # Create GUI 实例化对象

 

标签:Tkinter,Python,Menu,self,window,add,frame1,side,LEFT
From: https://www.cnblogs.com/emanlee/p/17301792.html

相关文章

  • PYTHON 字符串格式化
    字符串的格式化字符串的格式化采用了类似于C语言的%格式化符号。>>>y,m,d=2016,7,8>>>"%d-%02d-%02d"%(y,m,d)'2016-07-08'从Python2.6开始,引入了format内置函数来实现字符串格式化,它使用花括号}和冒号:来替代百分号%。与百分号格式化相比,它的功能更加强大而灵活。1)通过......
  • python+playwright 学习-51 登录-验证码识别
    简单的登录验证码,数字和英文组合的,可以轻松识别登录验证码如下图登录验证码验证码是一个图片链接,每次打开页面它会自动刷新![[Pastedimage20230410084603.png]]解决思路是先获取到验证码图片,获取验证码图片的方式,可以直接定位到img元素,对元素截图即可#保存验证码page......
  • Python Tkinter Menu tearoff
     tkinter的菜单,程序运行的时候菜单之下出现了一个虚线项,如下图红色框:  点击这个虚线选项后,菜单单独浮于应用之上(如下图)。  tearoff选项,当tearoff=1的时候该菜单被设置为可以独立出来的菜单,点击虚线就可以将菜单独立出来,当tearoff=0时就是正常的菜单了,但是默认情况下t......
  • python 字符填充应用
    填充常跟对齐一起使用。^、<、>分别代表居中对齐、左对齐和右对齐,其后面的参数为宽度。冒号:后面为填充的字符,只能是一个字符,默认以空格填充。>>>'{:>10}'.format('32')'32'>>>'{:0>6}'.format('33')'000033'>>>ab=�......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-食谱智能生成从0到1快速入门——官网推荐的48
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......
  • python网络爬虫
    一、爬虫的基本思路打开网页:requests/urllib找到需要的信息:标签/xpath/jsonpath/...获取和存储信息:json文档二、网页的分类1.静态网页源代码中包含需要的信息国务院办公厅关于印发"十四五"国民健康规划的通知爬取方式:直接从源代码中提取需要的信息2.动态网......
  • Python Tkinter config
    PythonTkinterconfigconfig可以设置tkinter组件的样式参数。比如:组件变量.config(background='black')在文本框(Text)和画布(Canvas)中还提供了tag_config和itemconfig函数,用于重新设定元素样式参数。这个参数在动态更新tkinter组件样式,以及在文本框和画布中动态改变元素样式有很......
  • python播放视频
    python播放视频pipinstallpygameimportpygamepygame.init()#Setthedimensionsofthewindowscreen=pygame.display.set_mode((640,480))#Loadthevideofilevideo=pygame.movie.Movie("1.mp4")#Playthevideovideo.play()#Wait......
  • ubuntu安装python环境scikit-learn低版本
    Ubuntu默认使用的是python3.8,要安装插件需要先安装几个依赖包      安装uwsgi需要安装gccpython3.8-dev python-dev      安装scikit-learn旧版本需要安装python3-sklearnpython3-sklearn-lib这两个包,python3.8支持最早的版本是scikit-learn==0.24.2    ......
  • 全网最详细中英文ChatGPT-GPT-4示例文档-文章大纲智能生成器从0到1快速入门——官网推
    目录Introduce简介setting设置Prompt提示Sampleresponse回复样本APIrequest接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例其它资料下载ChatGPT是目前最先进的AI聊天机器人,它能够理解图片和文字,生成流畅和有趣的回答。如果你想跟上AI时代的潮流......