单个按钮 tkinter 的多个操作

2023-12-03

我一直在使用 matplotlib 和 tkinter 为基于 GUI 的绘图仪编写一个程序。我为一些选项添加了一个顶层窗口。我想执行一个函数并在单击按钮后退出顶层窗口。那可能吗?


我面临的问题是我使用了必须从主窗口调用的顶级窗口。所以我定义了一个包含这个顶级窗口的函数。如果我定义另一个可以执行多个操作的函数,它无法识别顶级窗口。我可以在一个类下定义它,但不确定它是否有效。这是我的代码的一部分,其中包含顶层窗口。

def plt_options(arg):
    global lg_var,col_var,line_type_var,marker_var

    plt_opt = Toplevel(app)

    lg_var = StringVar(None)
    lg_text = Label(plt_opt,text='Legend').grid(row=0,column=0,sticky=E)
    lg_box = Entry(plt_opt,textvar=lg_var)
    lg_box.grid(row=0,column=1,sticky=W)

    col_var = StringVar(None)
    col_var.set('blue')
    col_text = Label(plt_opt,text='Color').grid(row=1,column=0)
    col_chooser = OptionMenu(plt_opt,col_var,'blue','green','red','cyan',\
           'magneta','yellow','black','white')
    col_chooser.grid(row=1,column=1)

    line_type_var = StringVar(None)
    line_type_var.set('Solid')
    line_type_text = Label(plt_opt,text='Line type').grid(row=2,column=0)
    line_chooser = OptionMenu(plt_opt,line_type_var,'Solid','Dashed',\
                          'Dotted','Dash-Dotted','None')
    line_chooser.grid(row=2,column=1)

    marker_var = StringVar(None)
    marker_var.set('None')
    marker_text = Label(plt_opt,text='Marker').grid(row=3,column=0)
    marker_chooser = OptionMenu(plt_opt,marker_var,'Plus','Dot','Circle',\
        'Star','Pentagon','Square','Cross','Diamond','Hexagon','Triangle')
    marker_chooser.grid(row=3,column=1)    

    ok_btn = Button(plt_opt,text='OK',command=testing).grid()

按钮正是为此而设计的。通常,您会定义一个函数或方法来执行您想要的任何操作,然后将该方法分配给command按钮的属性:

import Tkinter as tk
import tkMessageBox

class SampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        button = tk.Button(text="Press me!", command=self.on_button)
        button.pack()
    def on_button(self):
        tkMessageBox.showinfo(message="Good-bye!")
        self.destroy()

app = SampleApp()
app.mainloop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单个按钮 tkinter 的多个操作 的相关文章

随机推荐

  • QML 加载并显示具有颜色属性的 .ply 网格

    我正在尝试使用 QML 从斯坦福 PLY 文件加载一个带有每个顶点颜色信息的简单立方体 我的实体看起来像这样 Entity id circle property Material materialPoint Material effect
  • 谷歌地图API地理定位+雷达地点搜索

    我正在尝试使用谷歌地图 API 中的地理位置和地点来显示地图 在我的位置 以及我周围最近的地点 这两个示例单独工作 但不能一起工作 谁能告诉我为什么会有问题 我是否用另一个地图覆盖了地图或做其他错误的事情
  • 预处理使用 keras 函数 ImageDataGenerator() 生成的图像来训练 resnet50 模型

    我正在尝试训练 resnet50 模型来解决图像分类问题 在我拥有的图像数据集上训练模型之前 我已经加载了 imagenet 预训练权重 我正在使用 keras 函数 flow from directory 从目录加载图像 train da
  • 无法访问 webrtc 上的后置摄像头 [chrome:54]

    我正在使用 webrtc 和 Threejs 尝试 webAR 演示 同时通过我的 Android 手机 chrome 54 访问相机 前置摄像头默认打开 我检查并尝试通过参考有关堆栈溢出的所有问题来解决该问题 甚至尝试更改数组值但没有成功
  • C++:使用 longjmp 和 setjmp 安全吗?

    在 linux gcc 上的 C 中使用 longjmp 和 setjmp 是否安全 异常处理 我没有使用longjmp setjmp实现异常处理 我想知道longjmp setjmp会对标准异常处理产生什么副作用 this pointer
  • 如何使用 matplotlib 绘制一维高斯混合模型的 pdf

    我想绘制高斯混合模型 下面的代码允许我绘制两个单独的高斯曲线 但是在它们相交的地方 线条非常尖锐并且不够平滑 有没有办法绘制一维 GMM 的 pdf def plot data mu 6 5 var 2 3 sigma np sqrt va
  • Animationend 事件未在 :after 元素上触发

    我在 after 元素上设置了一个动画 并在animationend 事件上设置了一个事件处理程序 但是 animationend 事件在 IE10 IE11 中永远不会触发 document ready function var test
  • PhantomJS 节点 - page.open - 无法跟踪多个页面

    我在用着幻影节点将节点与 PhantomJS 接口 我正在尝试并行打开页面 但问题是page open回调函数不会传回对页面的引用 因此我无法知道哪个页面已完成 相关代码 self queue j page open call self q
  • 计算记录在数据库表中出现的最大次数

    我无法找到正确的 mysql 函数 但我试图找到单个记录相对于所有其他记录出现在数据库中的最大次数 例如 ID 1 2 2 2 3 3 我想要实现的查询的理想返回是3 1的计数是1 2的计数是3 3的计数是2 所以返回任何id的最大计数 不
  • PHP 中的数据网格[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我需要使用 php 作为后端编程语言在 Web 应用程序中创建一个数据网格 该数据网格将从 MySQL 数据库对象 视图 存储过程 填充 最终用户应该能够编辑此数据网格中的数据
  • Java super() 继承

    问题的简短摘要 我有一个由子类扩展的父类 public class Parent public Parent constructor logic 这个子类使用 super 调用父类的构造函数 public class Child exten
  • Flutter 是否能够在运行时动态加载和构建 widget?

    有没有什么可以让我在某个服务器上存储多个 dart 文件并在运行时检索这些文件中的任何一个 以便 Flutter 能够从它收到的文件构建特定的小部件 您无法动态加载 dart 文件或创建新类 不 另一方面 小部件树是在运行时创建的 并且小部
  • 停止 Qt 线程:调用 exit() 或 quit() 不会停止线程执行

    在 main 中创建了一个 QThread 即主线程 将工作类移至新线程 线程执行工作类的 StartThread 方法 工人线程 header file class Worker public QObject Q OBJECT publi
  • 用于读取输入文本文件并为输入文本文件的每一行创建文本文件的批处理脚本[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么它们不起作用以及预期结果 也可以看看 Stack Overflow 问题清单 这个问题似乎不是关于主要
  • UIDocumentInteractionController 删除操作菜单

    我一直在使用 Apple 示例代码来从此处查看文档 https developer apple com library ios samplecode DocInteraction Listings ReadMe txt html 我已经删除
  • 如何设置 PHP 的环境变量?

    我正在使用WAMP 我想从命令提示符使用 php PATH 环境变量中的条目是什么 您需要将 PHP 目录添加到您的路径中 在命令行上 例如在批处理文件中 它看起来像这样 SET PATH PATH C your wamp path php
  • 按 Java 8 中的可比 Bean 属性排序

    是否有比此模式更短的方法来使用 Java 8 流按可比属性进行排序 collection stream sorted a b gt a getProp compareTo b getProp 是的 你可以使用方法参考为了这 collecti
  • 方括号前面的逗号 - MDN 文档

    MDN是我的主要 Javascript 资源 我经常看到这样的符号 currentValue index array as in let new array arr map function callback currentValue in
  • Jquery 基于选择文本的条件验证

    我只想在 select1 字段中选定的文本为 其他 时才需要 其他 字段 我正在尝试的规则是 other required function element return select1 option selected text Other
  • 单个按钮 tkinter 的多个操作

    我一直在使用 matplotlib 和 tkinter 为基于 GUI 的绘图仪编写一个程序 我为一些选项添加了一个顶层窗口 我想执行一个函数并在单击按钮后退出顶层窗口 那可能吗 我面临的问题是我使用了必须从主窗口调用的顶级窗口 所以我定义