首页 > 其他分享 >GPT的tkinter学习之路(3)

GPT的tkinter学习之路(3)

时间:2024-07-16 16:45:32浏览次数:13  
标签:tkinter menu label 学习 add command file GPT root

Task 1:使用菜单和对话框

预期效果:

  • 建立一个窗口,左上角是菜单栏,点击后会出现几个选项,如图
    image

code:

import tkinter as tk
from tkinter import messagebox, filedialog

# 创建主窗口
root = tk.Tk()
root.title("Tkinter 菜单和对话框示例")
root.geometry("400x300")

# 创建菜单栏
menu_bar = tk.Menu(root)

# 创建文件菜单
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="Open", command=lambda: filedialog.askopenfilename())
file_menu.add_command(label="Save", command=lambda: filedialog.asksaveasfilename())
file_menu.add_separator()
file_menu.add_command(label="Exit", command=root.quit)
menu_bar.add_cascade(label="File", menu=file_menu)

# 创建帮助菜单
help_menu = tk.Menu(menu_bar, tearoff=0)
help_menu.add_command(label="About", command=lambda: messagebox.showinfo("About", "This is a Tkinter demo"))
menu_bar.add_cascade(label="Help", menu=help_menu)

# 将菜单栏添加到主窗口
root.config(menu=menu_bar)

# 运行主事件循环
root.mainloop()

Attention:

  • tearoff=0表示这个窗口不能被分离,也就是不能从菜单栏那里拿下来,假设不设置tearoff参数,那么默认参数为1,会在菜单栏和框体出现一条虚线表明可以拿下来 参见
    image
    image

  • 注意这一行
    file_menu.add_command(label="Open", command=lambda: filedialog.askopenfilename())
    中的匿名函数是为了延迟函数的执行,如果我们去掉这个匿名函数,那么后面调用的打开文件函数就会在创建窗口的时候执行,而非我们点击开始菜单的 open时启用

  • messagebox.showinfo()方法会产生一个弹窗,并且出现在最上层(不点掉没法干别的)
    image

  • 横向的项目 (例如file,help) 添加使用add_cascade() (级联) 方法,纵向 (例如open,save) 添加使用add_command()

标签:tkinter,menu,label,学习,add,command,file,GPT,root
From: https://www.cnblogs.com/AusarPu/p/18305567

相关文章

  • MySQL的学习
    关于数据库(DB)数据库是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。有什么类型关系型数据库所谓关系模型就是“一对一、一对多、多对多”等关系模型,非关系型数据库它们不保证关系数据的A......
  • MySQL学习笔记——索引
    索引0.前言本文是跟着网课学习的时候随手记录的一篇关于MySQL索引的学习笔记1.索引概述1.1.索引介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据......
  • 日常学习记录
    今天上课的时候进行了一个有趣的游戏------编码和解码大家会不会想这有什么有趣的呢,互联网上有很多编码和解码的工具,这有什么新鲜的?但是,老师的要求是让我们动动脑筋,自己去创造一种方法写成密码本,用于解码的时候使用。这就有些难度了。。。        首先,我们思考能......
  • 小白记录机器学习1
    机器学习包含4个部分:数据、模型、目标函数、最优化算法数据:由特征和标签组成,特征是每个数据带有的n个自变量变量,标签是单个数据对应的唯一的因变量,所以可以理解成:已知n个自变量,建立一个函数,求因变量。标签是数据的结果,也就是我们要预测的结果。机器学习的主要过程:收集数据:首......
  • ROS源码学习分享_6_ConnectionManager
        在上一章中,我们观察了PollManager节点背后的一些行为逻辑,但还有一些地方与本章有一些关联而没有讲到,这次我们就补上这些拼图。(本文章源自作者对于源码的观察理解以及其他资料的学习结合后的产物,仅用于自我复习,如有错误敬请见谅)    按照惯例我们先看一下......
  • 深度学习全景进阶:Python深度学习
    近年来,伴随着以卷积神经网络(CNN)为代表的深度学习的快速发展,人工智能迈入了第三次发展浪潮,AI技术在各个领域中的应用越来越广泛。注意力机制、Transformer模型(BERT、GPT-1/2/3/3.5/4、DETR、ViT、SwinTransformer等)、生成式模型(变分自编码器VAE、生成式对抗网络GAN、扩散模型Di......
  • PX4学习日志四:PositionControl.cpp代码解读
    首先看boolPositionControl::update(constfloatdt)函数,该函数先进行有效性判断。跳转到_positionControl函数if(valid){_positionControl();分析_positionControl函数3.1通过P控制实现速度调节Vector3fvel_sp_position=(_pos_sp-_pos).emult(_gain_pos_p);......
  • 2024-07-16 记录vue内置组件(ps:内容来自GPT)
    1. Transition和TransitionGroup用途:用于为单个元素或组件提供过渡效果。TransitionGroup则用于列表中的多个元素或组件的过渡效果。特点:Transition:只影响单个元素或组件,不会额外渲染DOM元素。TransitionGroup:渲染一个真实的DOM元素(默认为<span>),可以通过tag属性改变渲染......
  • 路径规划 | 基于DQN深度强化学习算法的路径规划(Matlab)
    目录效果一览基本介绍程序设计参考文献效果一览基本介绍DQN路径规划算法基于深度强化学习算法的路径规划matlab2023b栅格环境,走迷宫,可以通过窗口界面方便观察交互过程,代码注释详尽。程序设计完整源码和数据私信博主回复基于DQN深度强化学习算法的路径规划(Ma......
  • 越来越多人认为像ChatGPT这样的人工智能聊天机器人是有意识的
    像ChatGPT这样先进的生成式人工智能聊天机器人是否具有某种意识或自我意识,能够像人类一样体验情感和记忆?当然不是。然而,大多数人认为这些AI机器人确实具有一定程度的意识,而这种信念可能会影响用户与它们的交互方式。过去几年,人工智能语言生成工具取得了令人难以置信的进......