Tkinter Menubutton 小部件键绑定以在同一窗口中打开菜单小部件元素

2024-01-15

我在菜单中创建了一个子菜单Menubutton and Menu小部件:

from tkinter import *
root = Tk()

def f(event):
    submenu.invoke(0)

mainmenu = Menubutton(root, text="Menu")
mainmenu.pack()

submenu = Menu(mainmenu)
mainmenu.config(menu=submenu)

submenu.add_command(label="Option 1")
submenu.add_command(label="Option 2")

现在我想向我的菜单添加一个键绑定:

mainmenu.bind("<Key>", f)
mainmenu.focus_set()

它的作用就像魅力:当我按下一个键时,它会打开子菜单。但问题是,子菜单是作为一个撕掉的顶层窗口打开的。但我希望它与菜单在同一窗口中打开。我添加了tearoff=0 into submenu(所以就变成了这样:submenu = Menu(mainmenu, tearoff=0))。但现在,它没有返回任何东西。我正在尝试找出为什么不行。也许我做错了什么......
我一直在寻找解决方案,但没有一个能解决问题。他们所告诉的只是添加一个打印出某些内容的键绑定,但是我想要一个可以自动单击菜单项的键绑定,并且它会弹出项目元素,但不是作为单独的窗口(也许它被称为contextmenu?)。我在任何地方都找不到解决这个特定问题的方法。
那么我怎样才能实现它呢?任何帮助,将不胜感激。


I think

def f(event):
    submenu.post(mainmenu.winfo_rootx(), 
                 mainmenu.winfo_rooty() + mainmenu.winfo_height())

做你想做的事,即使tearoff=False选项。

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

Tkinter Menubutton 小部件键绑定以在同一窗口中打开菜单小部件元素 的相关文章

随机推荐

  • Gradle:如何在控制台上打印依赖项工件 URL

    我们从maven转移到gradle 在maven中 使用build命令 我们可以清楚地看到从中获取依赖项的nexus URL 使用 gradle 我如何在项目构建时查看依赖项 URL 是否有任何命令行选项可以在 gradle 中执行此操作
  • 如何在 Laravel 队列中使用模型

    我正在尝试将邮件列表从 CSV 导入到我的数据库中 我的 Laravel 中有两个模型负责执行此操作 Target and Mailing one Target有很多Mailings 我正在使用带有 Beanstalkd 的队列系统 我在用
  • Redmine 3.3.0 (ruby on Rails 4.2.6) 样式表未生成/包含在 application.css 中

    我已经安装了 redmine 并设法启动它 但 UI 似乎缺少它的 css 样式 如果我点击 application SomeId css 的链接 它会显示一个包含以下消息的空 css This is a manifest file tha
  • UIGestureRecognizer 接收触摸但也将其转发给 UIControl

    你会如何允许UIGestureRecognizer of a UIView接收触摸事件 但也确保另一个 底层 上层UIView也收到同样的触摸事件 Lets say I have got the following view hierach
  • 三角形带上的纹理坐标

    我创建了一个带有 14 个顶点的几何着色器的立方体 感谢三角形条 现在的问题是如何放置我的纹理坐标 我有一个包含 3 个纹理的图像文件 立方体的顶面 底面 左 右 前 后面 我找不到为每个顶点提供纹理坐标的方法 14 我总是得到奇怪的纹理显
  • Python 3.5.1:QVariant 表示映射类型,无法实例化

    我正在使用 Python 3 5 1 我正在尝试运行此代码 但 QVariant 有问题 from PyQt4 QtCore import from PyQt4 QtGui import import sys class Model QAb
  • Python 多处理:比请求的进程更多

    为什么我看到这么多 python 进程在运行 在htop on RHEL 6 当我只使用 1 个核心时 对于相同的脚本 对于每个任务 我都会初始化一个管理处理的工作类 它会初始化其他类 但不会初始化任何子进程 tasks multiproc
  • Android SDK 的快速位图模糊

    目前 在我正在开发的 Android 应用程序中 我正在循环遍历图像的像素以使其模糊 对于 640x480 图像 这大约需要 30 秒 在浏览 Android Market 中的应用程序时 我遇到了一个包含模糊功能的应用程序 并且它们的模糊
  • 尝试启动 Firefox 时出现 Python Selenium 错误

    我在 ipython 笔记本中尝试使用 Selenium 打开 Firefox 时遇到错误 我环顾四周 发现了类似的错误 但没有任何错误与我收到的错误完全匹配 有人知道问题可能是什么以及我如何解决它吗 我使用的是 Firefox 22 我输
  • 在 Rakefile 中设置 rspec 2 任务

    我有一个看起来像这样的 Rakefile require rspec core rake task desc Run all RSpec tests RSpec Core RakeTask new spec 但这不起作用 例如 如果我尝试运
  • React 表单组件 onSubmit 处理程序不工作

    我有以下 React 组件 class Form extends React Component handleSubmit e e preventDefault let loginInput ReactDOM findDOMNode thi
  • Spring 事务因 iptables 命令而挂起

    作为进程错误处理的一部分 我们尝试使用以下 iptables 命令禁用进程与数据库计算机侦听器端口之间的通信 iptables A INPUT p tcp destination port
  • Cloud Foundry如何处理进程隔离?

    假设我使用 上提供的开源 Cloud Foundry 实现设置了自己的云cloudfoundry org http www cloudfoundry org 我部署的每个应用程序都会作为单独的用户运行吗 或者这里使用了VMWare的虚拟化技
  • MVC 中的 Bootstrap 模式,双背景 - 背景出现两次

    我在使用 jQuery 生成引导模式时注意到一个问题 在动态生成的部分视图 我的模式 中添加更多 JavaScript 会导致出现双背景 有谁知道为什么会发生这种情况 我正在使用 jquery 1 8 2 js 和 Bootstrap v3
  • 通过HTA触发宏的VBS(无法运行宏)

    我有一个 HTA 脚本 它最终触发代码的 vbs 部分来调用 VBA 宏 但由于某种原因我收到此错误 我已经确保启用了对 VBA 的信任访问 因此我觉得我的代码中的某些内容与 HTA 不兼容 这是代码 提前感谢您的宝贵时间
  • 根据特定条件连接 RxJ 中的两个可观察流

    我有两个对象流 帐户和余额 我需要根据以下内容合并 加入 两个流id and account id var accounts Rx Observable from id 1 name account 1 id 2 name account
  • VBA-获取鼠标移动事件中的标签名称

    我有以下问题 我的工作表中有很多以结构化方式命名的标签 Label1 Label2 Label9 并为所有标签分配了鼠标移动事件宏 我想获取表A1 A9中的第i个值 其中 i 是当前 触摸 的标签号 有没有一种简单的方法可以在 mouse
  • GIT:无法从存储库中删除文件

    目前 我们被迫将存储库从 Gitlab 迁移到 Github 当我们想使用 git push u origin master 将我们的存储库推送到 Github 时 不幸的是 这会导致以下错误 复制输出 1 remote error GH0
  • 开源非分发许可证[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 通常我是 A GPL 的忠实粉丝 并发布由其许可的软件 然而 这一次我认为我不能允许重新分发我的软件 因此 我正在寻找一个许可证 上面写着 1 使我的
  • Tkinter Menubutton 小部件键绑定以在同一窗口中打开菜单小部件元素

    我在菜单中创建了一个子菜单Menubutton and Menu小部件 from tkinter import root Tk def f event submenu invoke 0 mainmenu Menubutton root te